• Nenhum resultado encontrado

Projeto'Integrador. Arquiteturas Distribuídas

N/A
N/A
Protected

Academic year: 2021

Share "Projeto'Integrador. Arquiteturas Distribuídas"

Copied!
35
0
0

Texto

(1)

Projeto'Integrador

(2)

Sistema Distribuído

Um'sistema'distribuído'é'... um'conjunto'de'componentes'hardware'e'software, interligados'através'de'uma'infraestrutura'de' comunicação, que'cooperam'e'se'coordenam'entre'si'apenas'pela' troca'de'mensagens.'

(3)

Sistema Distribuído

Aspetos'inerentes'à'separação'física'dos' componentes... E Paralelismo real,'falhas'independentes E Ausência'de'um'relógio'global,'visão parcial'do' estado'global'do'sistema E E>'implicações'no'objetivo'de'operar,'de'forma' concertada,'como'um'todo...

(4)

Arquitetura

• Organização'de'um'sistema'(complexo)'em' componentes'mais%simples%com' funcionalidades/responsabilidades'próprias • Num'sistema%distribuído,'define: – quais'os'componentes,'o'que'fazem'e'como' interagem'entre'si

(5)

Arquitetura

• A'arquitetura'de'um'sistema'distribuído'pode' ser'determinada'por'vários'fatores: – requisitos'funcionais: • E e.g.,'controlo,'segurança,'etc. – requisitos'não'funcionais: • E desempenho'(escalabilidade,'latência),'disponibilidade • E custo

(6)

Modelo'Cliente/Servidor

• A'arquitetura'mais'simples'divide'a'aplicação' distribuída'em'dois'componentes... Cliente Servidor pedido resposta

(7)

Composição

• Arquiteturas'mais'sofisticadas'podem'ser' obtidas'por'composição'do'modelo'C/S… Servidor [particionado,'replicado,'geoEreplicado],' P2P,'3ETier,'etc. C S C S C S C S C Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Servidor Servidor Servidor Servidor ServidorServidor Servidor Servidor Servidor

(8)

Limitações Modelo C/S'Base

• Falhas,'capacidade limitada do'servidor,'

latência da'comunicação… Cliente Cliente Cliente Cliente Servidor

(9)

Limitações Modelo C/S'Base

• Falhas,'capacidade limitada do'servidor,'

latência da'comunicação… Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Servidor

(10)

Limitações Modelo C/S'Base

• Falhas,'capacidade limitada do'servidor,'

latência da'comunicação… Cliente Servidor Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente

(11)

Limitações Modelo C/S'Base

• Falhas,'capacidade limitada do'servidor,'

latência da'comunicação… Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente

(12)

Servidor'Particionado

• Serviço'é'fornecido'por'múltiplos'servidores,' dedicados'a'uma'parte'do'problema – Melhor desempenho,'falhas'parciais • Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Servidor Servidor Servidor Servidor

(13)

Servidor'Replicado

Serviço'é'fornecido'por'múltiplos'servidores'

funcionalmente'idênticos

– aumenta a'disponibilidade do'serviço,'desempenho'

depende'do'custo de'manter'a'consistência entre' réplicas • Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Servidor Servidor Servidor Servidor ServidorServidor Servidor Servidor Servidor

(14)

Servidor'GeoEReplicado

Múltiplos'servidores'funcionalmente'idênticos% e%distribuídos%geograficamente – aumenta a'disponibilidade,'reduz'latência;' consistência'entre'réplicas'mais'cara • Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Cliente Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor Servidor

(15)

Arquiteturas nEtier/camadas

• Funcionalidades da'aplicação estão

fisicamente separadas em diversas camadas

– Gestão dos'dados,'separada do'seu processamento,'

da'sua apresentação

– (+++)'Flexibilidade em

– alterar cada camada

– de'forma'independente

Exemplo:'Arquitetura'3Etier/camadas Clientes Application

Server Base'de'Dados

(16)

Modelo P2P

• Modelo'com'componentes' • funcionalmente'idênticas,' • interagindo'entre'si ( +')'controlo'descentralizado,'privacidade,'custo' reduzido,'escala'“ilimitada”… ('E )'difícil'de'concretizar'e'garantir'funcionalidades E Produtos:'Spotify,'Bittorrent C S C S C S C S

(17)
(18)

Desempenho &'Escalabilidade

• Métricas

– Latência das'operações

• – afecta a'apreciação subjetiva da'qualidade do'serviço

– Débito

(19)
(20)

Latência de'uma operação

tempo Cliente Servidor processamento local:'~1'ms pedido ao servidor:'~10E100'ms processamento no'servidor:~1E100'ms resposta do'servidor:'~10E100'ms processamento local:'~1E100'ms

(21)

Latência de'uma operação

tempo Cliente Servidor processamento local:'~1'ms pedido ao servidor:'~10E100'ms processamento no'servidor:~1E100'ms resposta do'servidor:'~10E100'ms processamento local:'~1E100'ms

(22)

Aplicação Web'no'Cliente

Algumas orientações:

Responsive'web'design

http://jquerymobile.com/demos/1.3.0/docs/intro/rwd.html

Dimensões das'imagens/objetos/scripts Fidelidade/detalhe ajustado à plataforma Bibliotecas em versões minimizadas

Carregamento dinâmico de'páginas

Dar'(algum)'feedback'logo'que possível Atualizar apenas o'necessário

Prefetching'and'caching

(23)

Interação cliente/servidor

• Reduzir número de'interações

– Porquê?

• Latência da'interação

• Carga do'servidor

– Como?

• Verificações no'cliente sempre que possível

– e.g.'dados'dos'forms

• Caching'no'cliente,'caching'no'cliente,'caching'no'cliente,' caching'no'cliente,'…

(24)

Caching'dos'dados

Importante devido ao potencial impacto no'

desempenho

– Dados'imutáveis:'simples

Dados'mutáveis do'cliente (e.g.'preferências):'simples

Outros'dados'mutáveis:'gerir risco de'divergência

– Aproximação simples/pragmática:'usar dados'em cache' e'aferir validade,'se'passou demasiado tempo,'

(25)

Interações periódicas

Impacto no'cliente pela carga induzida no'

servidor

– e.g.:'informar servidor de'nova'localização,'obter localização de'um'grupo de'utilizadores,'etc.

Aproximações possíveis

– Utilizar soluções push'(iniciativa do'servidor)

– tendem a'ser'dependentes da'plataforma,'websockets

Limitar e'adaptar frequência das'invocações

– e.g.'apenas envia nova'localização se'a'actual'se'alterou siginifcativamente

(26)

Tempo'de'execução duma'operação

tempo cliente servidor processamento local:'~1'ms pedido ao servidor:'~10E100'ms processamento no'servidor:~1E100'ms aumenta com'acessos a'disco,'

complexidade do'pedido e'carga resposta do'servidor:'~10E100'ms processamento local:'~1E100'ms

(27)

Servidor:'caching'das'páginas

• Executar código em cada pedido é lento • Servidor/proxy'pode fazer cache'dos'

resultados e'servir o'cliente sem contatar o' servidor aplicacional

– RubyOnRails fornece solução:

(28)

Servidor:'base'de'dados

Base'de'dados'é determinante no'desempenho

– Acesso é ordens de'grandeza mais lento'que computação

Aspectos a'ter em consideração

– Índices são fundamentais para bom desempenho

• e.g.'índices a'criar dependem das'pesquisas que se'fazem !!!

– Minimizar complexidade das'pesquisas efectuadas

• Joins'são pesados…'proibitivosse'não existirem os índices correctos

(29)

Caching'dos'resultados da base'de'

dados

• Repetir as'queries'à base'de'dados'leva a'um'

mau desempenho

Solução:'fazer caching'dos'resultados das'

queries

– RubyOnRails fornece solução:

(30)

Particionamento e caching'distribuído

• A'partir de'certo nível de'carga,'é necessário

ter mais servidores a'executar

– Aproximação simples

• Várias máquinas correm servidor aplicacional

• Continua'a'existir uma única base'de'dados

• Para'escalar,'é fundamental'acesso eficiente aos dados

• Solução:'memcached

• Memcached – servidor de'caching'distribuído

(31)

Particionamento

• A'partir de'certo nível de'carga,'é necessário

ter mais servidores a'executar

• Aproximações mais complexas:

– Divisão em funcionalidades independentes servidas

por diferentes servidores

– Particionamento dos'dados,'de'forma'a'serem

(32)

Índice

• Desempenho duma aplicação

– Cliente

– Interacção cliente/servidor

• Reduzir número de'interacções

• Reduzir dimensão das'interacções – Servidor

• Melhorar desempenho dos'acessos à base'de'dados

• Particionar servidor

(33)

Medir desempenho:'porquê?

• Latência esperada

– Tempo'de'execução com'carga baixa

• Escalabilidade do'sistema

(34)

Medir desempenho:'como?

• DeveEse'executar uma carga de'trabalho semelhante à

executada pelos utilizadores finais

– Nas aplicações web,'podeEse'obter logs'dos'servidores e'fazer replays

• Para'obter latência esperada

– Executar as'cargas de'trabalho múltiplas vezes e'obter média e' desvioEpadrão (ou min/max),'percentil 90,'95,'para cada operação

• Para'verificar escalabilidade

– Ir aumentandoo'número de'clientes a'executarem operações concorrentemente

(35)

Algumas ferramentas

Existe um'grande número de'ferramentas para

testar a'escalabilidade do'servidor

– RubyonRails – http://guides.rubyonrails.org/performance_testing.html#generati ngEperformanceEtests – Apache'Jmeter – http://jmeter.apache.org/ – Httperf – http://www.hpl.hp.com/research/linux/httperf/

Medir desempenho através de'reEexecução de'logs

Referências

Documentos relacionados

O DEPARTAMENTO ACADÊMICO DO IFAL – CAMPUS ARAPIRACA torna público o PROCESSO DE SELEÇÃO DE MONITORIA para os alunos dos Cursos Técnicos

É importante a participação de todos os alunos em todas as atividades que serão solicitadas ao longo da disciplina, bem como o comprometimento com os prazos,

Comunicação Interna: Algumas ações foram propostas ainda em 2016, o plano de ação para 2017 não foi elaborado e as ações não foram efetivadas (Murais, Jornal

O aumento da viscosidade após o ponto de mínimo é mais pro- nunciado na alumina de menor tamanho de partícula, A1000, devido a uma pequena separação entre as

deste Regulamento, será devida pelo Fundo a Taxa de Administração, correspondente à somatória da remuneração do Administrador, Gestor, e do Agente de

Porcas de fixação intercambiáveis, porcas de fixação estilo refrigerante e discos do refrigerante estão disponíveis e devem ser pedidos separadamente; consulte a página

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ó

Neste novo contexto, a rotulagem ambiental de produtos surge como um instrumento de valorização e diferenciação no mercado e tornou-se um desafio para os