sistemas distribuídos arquitetura de sistemas distribuí · pdf fileconceito de...

63
Sistemas Distribuídos Sistemas Distribuídos Arquitetura de Sistemas Distribuídos Arquitetura de Sistemas Distribuídos Aula II Aula II Prof. Rosemary Silveira F. Melo Prof. Rosemary Silveira F. Melo

Upload: hoangthuan

Post on 01-Feb-2018

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Sistemas DistribuídosSistemas Distribuídos

Arquitetura de Sistemas DistribuídosArquitetura de Sistemas Distribuídos

Aula IIAula II

Prof. Rosemary Silveira F. MeloProf. Rosemary Silveira F. Melo

Page 2: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquitetura de Sistemas DistribuídosArquitetura de Sistemas Distribuídos

•• Conceito de Arquitetura de SoftwareConceito de Arquitetura de Software

•• Principais elementos arquiteturaisPrincipais elementos arquiteturais

•• Modelos ArquiteturaisModelos Arquiteturais

•• Evolução das ArquiteturasEvolução das Arquiteturas

•• Estilos ArquiteturaisEstilos Arquiteturais

Page 3: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Conceito de Arquitetura de SoftwareConceito de Arquitetura de Software

•• é a estrutura de um sistema, que consiste de é a estrutura de um sistema, que consiste de

componentes de software, das propriedades componentes de software, das propriedades

externamente visíveis desses componentes e dos externamente visíveis desses componentes e dos

relacionamentos entre eles.relacionamentos entre eles.relacionamentos entre eles.relacionamentos entre eles.

•• é a estrutura ou organização dos mais é a estrutura ou organização dos mais

significativos componentes do sistema e suas significativos componentes do sistema e suas

interações.interações.

Page 4: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Principais elementos arquiteturaisPrincipais elementos arquiteturais

ComponentesComponentes

•• é uma unidade modular com interfaces é uma unidade modular com interfaces

requeridas e fornecidas bem definidas que é requeridas e fornecidas bem definidas que é

substituível dentro do seu ambiente.substituível dentro do seu ambiente.substituível dentro do seu ambiente.substituível dentro do seu ambiente.

•• são elementos de uma arquitetura que são elementos de uma arquitetura que

geralmente implementam: processamento geralmente implementam: processamento

(funcionalidade ou comportamento); estado (funcionalidade ou comportamento); estado

(informação ou dados); interação ( interconexão, (informação ou dados); interação ( interconexão,

comunicação, coordenação e mediação).comunicação, coordenação e mediação).

Page 5: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Principais elementos arquiteturaisPrincipais elementos arquiteturais

ComponentesComponentes

•• pode ser uma simples operação ou complexo pode ser uma simples operação ou complexo

como um sistema inteiro. Pode ser visto pelo como um sistema inteiro. Pode ser visto pelo

usuário (humano ou outro software) somente usuário (humano ou outro software) somente usuário (humano ou outro software) somente usuário (humano ou outro software) somente

através da sua interface pública.através da sua interface pública.

Page 6: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Principais elementos arquiteturaisPrincipais elementos arquiteturais

ConectoresConectores

•• tipo de componente responsável pela interação tipo de componente responsável pela interação

entre componentes.entre componentes.

•• em sistemas desktop convencionais os em sistemas desktop convencionais os •• em sistemas desktop convencionais os em sistemas desktop convencionais os

conectores são geralmente representados por conectores são geralmente representados por

simples chamadas de procedimento (procedure simples chamadas de procedimento (procedure

call) ou acesso a dados compartilhados. call) ou acesso a dados compartilhados.

•• em sistemas complexos eles passam a ter em sistemas complexos eles passam a ter

identidades, papéis e artefatos de implementação identidades, papéis e artefatos de implementação

único.único.

Page 7: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Modelos arquiteturaisModelos arquiteturais

•• Define a forma pela qual os Define a forma pela qual os componentescomponentes dos dos

sistemas sistemas interageminteragem e a maneira pela qual eles e a maneira pela qual eles

são mapeados em uma rede de computadores são mapeados em uma rede de computadores

subjacente (Coulouris, 2005).subjacente (Coulouris, 2005).subjacente (Coulouris, 2005).subjacente (Coulouris, 2005).

Page 8: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Page 9: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Arquiteturas 1 camada (Mainframes)• Dominantes até década de 80 como arquitetura • Dominantes até década de 80 como arquitetura

corporativacorporativa

• Terminais burros somente para apresentar as• Terminais burros somente para apresentar as

informações.informações.

Page 10: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Arquiteturas 1 camada (Mainframes)Desvantagens:Desvantagens:

–– Manutenção difícil e cara, proporcional a sua Manutenção difícil e cara, proporcional a sua

eficiência.eficiência.eficiência.eficiência.

–– Problemas de congestionamento na entrada Problemas de congestionamento na entrada

do servidor devido a chegada de pedidosdo servidor devido a chegada de pedidos

–– Congestionamento no tratamento da Congestionamento no tratamento da

informação (sistema central responsável por informação (sistema central responsável por

tudo, até pela interface)tudo, até pela interface)

–– Problema básico: interface não amigávelProblema básico: interface não amigável

Page 11: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Page 12: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Arquitetura Cliente/ServidorVantagens:Vantagens:

▫▫ Camada de apresentação no Cliente utiliza Camada de apresentação no Cliente utiliza

processamento local (aproveita PCs da empresa).processamento local (aproveita PCs da empresa).

▫▫ Oferecer sistemas com interfaces gráficasOferecer sistemas com interfaces gráficas

amigáveisamigáveis

▫▫ Integrar o desktop e os dados corporativos.Integrar o desktop e os dados corporativos.

Page 13: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Arquitetura Cliente/ServidorDesvantagens:Desvantagens:

•• Escalabilidade limitadaEscalabilidade limitada

•• Enormes problemas de manutenção (mudançasEnormes problemas de manutenção (mudanças

na lógica de aplicação forçava instalações)na lógica de aplicação forçava instalações)

•• Cada cliente uma conexão com o SGBDCada cliente uma conexão com o SGBD

Page 14: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Page 15: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Arquitetura 3 Camadas•• A arquitetura cliente/servidor em 2 camadas A arquitetura cliente/servidor em 2 camadas

sofria de vários problemas:sofria de vários problemas:

–– Falta de escalabilidade (conexões a bancos Falta de escalabilidade (conexões a bancos –– Falta de escalabilidade (conexões a bancos Falta de escalabilidade (conexões a bancos

de dados)de dados)

–– Enormes problemas de manutenção Enormes problemas de manutenção

(mudanças na lógica de aplicação forçava (mudanças na lógica de aplicação forçava

instalações)instalações)

•• Dificuldade de acessar fontes heterogêneasDificuldade de acessar fontes heterogêneas

Page 16: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Arquitetura 3 CamadasVantagens:Vantagens:

•• Perda de performance é compensada com Perda de performance é compensada com

ganho de flexibilidade.ganho de flexibilidade.ganho de flexibilidade.ganho de flexibilidade.

•• Aumento da escalabilidade e confiabilidade do Aumento da escalabilidade e confiabilidade do

sistema.sistema.

•• Problemas de manutenção foram reduzidos, Problemas de manutenção foram reduzidos,

pois mudanças nas camadas de aplicação e de pois mudanças nas camadas de aplicação e de

dados não necessitam de novas instalacões no dados não necessitam de novas instalacões no

desktop.desktop.

Page 17: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Arquitetura 3 CamadasDesvantagens:Desvantagens:

•• Integração via InternetIntegração via Internet

–– Problema que a maioria não foi projetada Problema que a maioria não foi projetada

para internetpara internet

•• Integração entre sistemas 3Integração entre sistemas 3--tierstiers

–– falta de padronizaçãofalta de padronização

Page 18: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Page 19: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Page 20: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Arquitetura n-camadas•• A arquitetura em 3 camadas original sofre de A arquitetura em 3 camadas original sofre de

problemas:problemas:

–– A instalação inicial dos programas no desktop A instalação inicial dos programas no desktop –– A instalação inicial dos programas no desktop A instalação inicial dos programas no desktop

é cara.é cara.

–– O problema de manutenção ainda persiste O problema de manutenção ainda persiste

quando há mudanças na camada de quando há mudanças na camada de

apresentação.apresentação.

–– Não se pode instalar software facilmente num Não se pode instalar software facilmente num

desktop que não está sob seu controle desktop que não está sob seu controle

administrativoadministrativo

Page 21: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Arquitetura n-camadas• Uso do Browser como Cliente Universal/Thin • Uso do Browser como Cliente Universal/Thin

ClientClient

•• A camada de aplicação se quebra em duas: Web A camada de aplicação se quebra em duas: Web •• A camada de aplicação se quebra em duas: Web A camada de aplicação se quebra em duas: Web

e Aplicaçãoe Aplicação

•• EvitaEvita--se instalar qualquer software no desktop e se instalar qualquer software no desktop e

portanto, problemas de manutenção.portanto, problemas de manutenção.

•• PodePode--se chamar de 3 camadas porque às vezes se chamar de 3 camadas porque às vezes

as camadas as camadas Web e AplicaçãoWeb e Aplicação freqüentemente freqüentemente

rodam na mesma máquina (pequenos volumes)..rodam na mesma máquina (pequenos volumes)..

Page 22: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Arquitetura n-camadasDesvantagens:Desvantagens:

•• ComplexidadeComplexidade

•• Fazer aplicações distribuídas multicamadas é Fazer aplicações distribuídas multicamadas é •• Fazer aplicações distribuídas multicamadas é Fazer aplicações distribuídas multicamadas é

difícil. Tem que:difícil. Tem que:

–– Implementar tolerância a falhasImplementar tolerância a falhas

–– Implementar gerência de transações Implementar gerência de transações

distribuídasdistribuídas

–– Implementar balanceamento de cargaImplementar balanceamento de carga

–– Implementar Implementar resource poolingresource pooling

–– Muito middleware envolvidoMuito middleware envolvido

Page 23: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

Arquitetura n-camadasDesvantagens:Desvantagens:

•• Informação redundanteInformação redundante

•• Dificuldade e o custo de desenvolvimento e Dificuldade e o custo de desenvolvimento e •• Dificuldade e o custo de desenvolvimento e Dificuldade e o custo de desenvolvimento e

manutenção. manutenção.

•• Cresce exponencialmente com o número de Cresce exponencialmente com o número de

camadas camadas

Page 24: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Evolução das arquiteturasEvolução das arquiteturas

•• O truque é introduzir O truque é introduzir middleware middleware num num

servidor de aplicação que ofereça esses servidor de aplicação que ofereça esses

serviços automaticamente. Além do mais, serviços automaticamente. Além do mais, serviços automaticamente. Além do mais, serviços automaticamente. Além do mais,

as soluções oferecidas (J2EE, . Net) são as soluções oferecidas (J2EE, . Net) são

baseadas em componentes.baseadas em componentes.

Page 25: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Por quê definir uma arquitetura para Por quê definir uma arquitetura para Sistemas Distribuídos ?Sistemas Distribuídos ?

•• Sistemas distribuídos são complexas peças Sistemas distribuídos são complexas peças de software.de software.

•• Componentes estão espalhados por diversas Componentes estão espalhados por diversas •• Componentes estão espalhados por diversas Componentes estão espalhados por diversas máquinas.máquinas.

•• Sistemas devem ser organizados Sistemas devem ser organizados adequadamente: organização lógica do adequadamente: organização lógica do conjunto de componentes e organização físicaconjunto de componentes e organização física

Page 26: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• Estilos arquiteturais definem decisões gerais de Estilos arquiteturais definem decisões gerais de

projeto que impõem restrições e que podem projeto que impõem restrições e que podem

precisar ser detalhadas em decisões mais precisar ser detalhadas em decisões mais

específicas para o sistema em questão.específicas para o sistema em questão.específicas para o sistema em questão.específicas para o sistema em questão.

•• Não são definidos detalhes acerca de Não são definidos detalhes acerca de

componentes utilizados, suas interfaces e seus componentes utilizados, suas interfaces e seus

mecanismos de interação. O arquiteto deve mecanismos de interação. O arquiteto deve

detalhar estas decisões e adaptádetalhar estas decisões e adaptá--las para o las para o

contexto específico de uma aplicação em contexto específico de uma aplicação em

particular.particular.

Page 27: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• Estilos em CamadaEstilos em Camada

•• Estilos com Memória CompartilhadaEstilos com Memória Compartilhada

•• Estilos Baseados em EventoEstilos Baseados em Evento

•• PeerPeer--toto--PeerPeer

Page 28: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• Estilos em Camada Estilos em Camada

–– a arquitetura é separada em camadas a arquitetura é separada em camadas

ordenadas, onde um programa de uma camada ordenadas, onde um programa de uma camada

pode solicitar serviços de uma camada inferior. pode solicitar serviços de uma camada inferior.

–– Virtual Machines Virtual Machines –– várias camadasvárias camadas–– Virtual Machines Virtual Machines –– várias camadasvárias camadas

–– ClientClient--Server Server -- duas camadas com conexões duas camadas com conexões

em redeem rede

Page 29: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• Estilos em Camada Estilos em Camada -- Virtual MachineVirtual Machine

Page 30: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• Estilos em Camada Estilos em Camada –– ClientClient--ServerServer

Page 31: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• Estilos com Memória CompartilhadaEstilos com Memória Compartilhada

–– caracterizado pela presença de múltiplos caracterizado pela presença de múltiplos

componentes que acessam o mesmo componentes que acessam o mesmo

repositório de dados e se comunicam através repositório de dados e se comunicam através

deste repositório.deste repositório.deste repositório.deste repositório.

––-- programas independentes acessam e se programas independentes acessam e se

comunicam exclusivamente através de um comunicam exclusivamente através de um

repositório global, conhecido como repositório global, conhecido como

blackboardblackboard..

Page 32: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• Estilos com Memória CompartilhadaEstilos com Memória Compartilhada

Exemplo: conjunto de ferramentas CASE integradaExemplo: conjunto de ferramentas CASE integrada

Page 33: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• Estilos com Memória CompartilhadaEstilos com Memória Compartilhada

Page 34: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• Estilos Baseados em EventoEstilos Baseados em Evento

–– caracterizados por componentes caracterizados por componentes

independentes que se comunicam somente independentes que se comunicam somente

através de eventos transmitidos por um através de eventos transmitidos por um

barramento (conector).barramento (conector).barramento (conector).barramento (conector).

–– altamente indicado para sistemas com altamente indicado para sistemas com

componentes concorrentes altamente componentes concorrentes altamente

desacoplados onde, em um determinado desacoplados onde, em um determinado

momento, um componente pode estar ou momento, um componente pode estar ou

criando ou consumindo informação.criando ou consumindo informação.

Page 35: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• Estilos Baseados em EventoEstilos Baseados em Evento

–– Nesta arquitetura, processos demonstram o Nesta arquitetura, processos demonstram o

interesse por um evento ou conjunto de interesse por um evento ou conjunto de

eventos (processo se subscreve) e esperam eventos (processo se subscreve) e esperam

pela notificação de qualquer um desses pela notificação de qualquer um desses pela notificação de qualquer um desses pela notificação de qualquer um desses

eventos, gerados por um processo notificador.eventos, gerados por um processo notificador.

–– O O produtor publicaprodutor publica uma informação em um uma informação em um

gerenciador de eventos (middleware) e os gerenciador de eventos (middleware) e os

consumidores se subscresvemconsumidores se subscresvem para receber para receber

as informações deste gerenciador. Eventos e as informações deste gerenciador. Eventos e

notificações.notificações.

Page 36: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• Estilos Baseados em EventoEstilos Baseados em Evento

Page 37: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• PeerPeer--toto--Peer (P2P)Peer (P2P)

–– consiste em uma rede de peers autônomos consiste em uma rede de peers autônomos

fracamente acoplados.fracamente acoplados.

–– cada peer atua como um cliente e como um cada peer atua como um cliente e como um

servidor.servidor.servidor.servidor.

–– peers se comunicam utilizando protocolo de peers se comunicam utilizando protocolo de

rede (ex.: napster, gnutella, emule, PPLive)rede (ex.: napster, gnutella, emule, PPLive)

–– descentraliza tanto a informação quanto o descentraliza tanto a informação quanto o

controle, fazendo com que a descoberta de controle, fazendo com que a descoberta de

recursos seja um aspecto importante.recursos seja um aspecto importante.

Page 38: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• PeerPeer--toto--Peer (P2P)Peer (P2P)

–– na descoberta de recursos em sistemas P2P na descoberta de recursos em sistemas P2P

puro:puro:

•• a solicitação é lançada na rede como um a solicitação é lançada na rede como um

todotodotodotodo

•• a requisição se propaga até que a a requisição se propaga até que a

informação seja descobertainformação seja descoberta

•• se a informação é encontrada o peer se a informação é encontrada o peer

obtém o endereço direto do outro peer e obtém o endereço direto do outro peer e

contacta diretamente.contacta diretamente.

Page 39: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• PeerPeer--toto--Peer (P2P)Peer (P2P)

–– na descoberta de recursos em sistemas P2P híbrido:na descoberta de recursos em sistemas P2P híbrido:

•• processo é otimizado por a presença de peers processo é otimizado por a presença de peers especiais, especializados na localização de outros especiais, especializados na localização de outros peers ou disponibilização de diretórios que localizam peers ou disponibilização de diretórios que localizam as informações. Ex.: napster (utiliza um servidor as informações. Ex.: napster (utiliza um servidor as informações. Ex.: napster (utiliza um servidor as informações. Ex.: napster (utiliza um servidor central para indexação das músicas e localização de central para indexação das músicas e localização de outros peers).outros peers).

–– estilo popular nas aplicações de compartilhamento de estilo popular nas aplicações de compartilhamento de arquivos, utilizado também B2B commerce, chat, redes arquivos, utilizado também B2B commerce, chat, redes de sensores.de sensores.

Page 40: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Estilos arquiteturaisEstilos arquiteturais

• PeerPeer--toto--Peer (P2P)Peer (P2P)

Page 41: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas de SistemasArquiteturas de Sistemas

• Como diversos sistemas distribuídos são Como diversos sistemas distribuídos são realmente organizados ?realmente organizados ?

•• Onde são colocados os componentes de Onde são colocados os componentes de •• Onde são colocados os componentes de Onde são colocados os componentes de software ?software ?

•• Onde é estabelecida a interação entre as Onde é estabelecida a interação entre as peças de software ?peças de software ?

Page 42: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas de Sistemas Arquiteturas de Sistemas

•• Arquiteturas CentralizadasArquiteturas Centralizadas

–– ClienteCliente--Servidor: terminais bancáriosServidor: terminais bancários

•• Arquiteturas DescentralizadaArquiteturas Descentralizada•• Arquiteturas DescentralizadaArquiteturas Descentralizada

–– PeerPeer--toto--Peer (P2P): EPeer (P2P): E--ChordsChords

•• Arquiteturas HíbridasArquiteturas Híbridas

–– PeerPeer--toto--Peer (P2P): BitTorrent, PPLivePeer (P2P): BitTorrent, PPLive

Page 43: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

• Modelo ClienteModelo Cliente--ServidorServidor

–– processos são divididos em dois gruposprocessos são divididos em dois grupos

–– Servidor: processo que implementa um Servidor: processo que implementa um –– Servidor: processo que implementa um Servidor: processo que implementa um

serviço específicoserviço específico

–– Cliente: processo que requisita um serviço ao Cliente: processo que requisita um serviço ao

servidorservidor

•• Requisição Requisição --> Resposta> Resposta

Page 44: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

Page 45: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

Page 46: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

•• Modelo ClienteModelo Cliente--Servidor: questões, questões!!Servidor: questões, questões!!

•• Clientes e Servidores multithreads?Clientes e Servidores multithreads?

•• Comunicação???Comunicação???•• Comunicação???Comunicação???

•• Qual o tipo de aplicação?Qual o tipo de aplicação?

•• Sem conexão, não confiável (UDP)?Sem conexão, não confiável (UDP)?

•• Com conexão, confiável (TCP)?Com conexão, confiável (TCP)?

Page 47: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

●● Considerando aplicações clienteConsiderando aplicações cliente--servidor que servidor que

visam dar suporte ao acesso de usuários a banco visam dar suporte ao acesso de usuários a banco

de dados:de dados:

–– Nível de interfaceNível de interface

–– Nível de processamentoNível de processamento

–– Nível de dadosNível de dados

Page 48: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

Page 49: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

Com a distinção entre três níveis lógicos, comoCom a distinção entre três níveis lógicos, como

distribuir fisicamente uma aplicaçãodistribuir fisicamente uma aplicação

clientecliente--servidor por várias máquinas?servidor por várias máquinas?clientecliente--servidor por várias máquinas?servidor por várias máquinas?

–– Arquitetura de duas divisões físicasArquitetura de duas divisões físicas

–– Arquitetura de três divisões físicasArquitetura de três divisões físicas

Page 50: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

Page 51: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

Page 52: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

Page 53: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

Page 54: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

Page 55: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas CentralizadasArquiteturas Centralizadas

Page 56: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas DescentralizadasArquiteturas Descentralizadas

•• Clientes e servidores são fisicamente Clientes e servidores são fisicamente

subdivididos em partes logicamente equivalentes,subdivididos em partes logicamente equivalentes,

mas cada parte está operando em sua própriamas cada parte está operando em sua própria

porção do conjunto completo de dados, o que porção do conjunto completo de dados, o que

equilibra a carga!!!!equilibra a carga!!!!

•• Interação entre os processos é simétrica: cada Interação entre os processos é simétrica: cada

processo agirá como um cliente e um servidor aoprocesso agirá como um cliente e um servidor ao

mesmo tempo.mesmo tempo.

Page 57: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas DescentralizadasArquiteturas Descentralizadas

Sistemas P2P Sistemas P2P –– questões, questões, questões!!questões, questões, questões!!

●● Como organizar os peers em uma rede deComo organizar os peers em uma rede de

sobreposição ?sobreposição ?sobreposição ?sobreposição ?

●● Como difundir o conteúdo?Como difundir o conteúdo?

●● Como incentivar os peers a colaborarem?Como incentivar os peers a colaborarem?

Page 58: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas DescentralizadasArquiteturas Descentralizadas

Page 59: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas DescentralizadasArquiteturas Descentralizadas

Page 60: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas DescentralizadasArquiteturas Descentralizadas

Page 61: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas DescentralizadasArquiteturas Descentralizadas

Page 62: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas DescentralizadasArquiteturas Descentralizadas

Page 63: Sistemas Distribuídos Arquitetura de Sistemas Distribuí · PDF fileConceito de Arquitetura de Software • é a estrutura de um sistema, que consiste de é a estrutura de um sistema,

Arquiteturas DescentralizadasArquiteturas Descentralizadas