1
Modelos de Sistemas Distribuídos
. Introdução
. Modelos Arquiteturais
. Requerimentos de Projeto para ArquiteturasDistribuídas
2
Introdução
. Existem 2 conjuntos de modelos de sistemasdistribuídos:
-> Conjunto dos Modelos Arquiteturais;
-> Conjunto dos Modelos Fundamentais;
. Cada modelo tem a intenção de disponibilizaruma descrição abstrata e simplificada, masconsistente dos aspectos relevantes doprojeto de sistemas distribuídos.
Introdução
3
Introdução
Modelos Arquiteturais estão preocupadoscom a disposição das partes do sistemadistribuído e da relação/interação entreelas
Modelos Fundamentais preocupam-secom as propriedades que são comuns atodos os modelos arquiteturais.
Introdução
4
Modelos Arquiteturais. A arquitetura de um Sistema é sua estrutura em termos de
componentes especificados separadamente, e assim fazer umsistema confiável, gerenciável, adaptável e de custo razoável.
Considerando:
. Localização dos componentes na rede de computadores(definindo padrões de distribuição de dados e carga detrabalho)
. A inter-relação entre os componentes (os papéis funcionaise os padrões de comunicação entre eles).
Conceitos:
. Processo servidor;
. Processo cliente;
. Processos pares; (cooperam e comunicam de maneira simétrica)
Modelos
5
Arquitetura de Software
. Originalmente é a estruturação do software comocamadas ou módulos em um único computador e maisrecentemente em termos de serviços oferecidos erequisitados entre processos localizados no mesmo ouem computadores diferentes.
-> Plataforma (hardware/Sistema Operacional. Ex: intel x86/Windows, PowerPC/Mac OS X);
->Middleware (modelo de programação convenientemascarando heterogeneidade);
Arquitetura
6
Arquitetura de SoftwareArquitetura
Source: Coulouris et al.
7
Arquitetura de Software
. Limitações de Middleware (principalmente middleware decomunicação
The end-to-end argument
Em muitos casos o comportamento correto de SDs depende deverificações, mecanismos de correção de erro e medidas desegurança em muitos níveis, alguns dos quais requerendoacesso a dados dentro do espaço de endereçamento daaplicação. Qualquer tentativa de verificação dessas condiçõesapenas dentro do sistema de comunicação (middleware) seráinsuficiente, e o trabalho provavelmente terá de ser feito tbémno nível da aplicação, disperdiçando esforço de programação, emais importante, adicionando complexidade e executandooperações redundantemente.
Saltzer, J.H., Reed, D.P., and Clarke, D. (1984). End-to-End Arguments in SystemDesign, ACM Transactions on Computer Systems Vol. 2, Nº 4, pp. 277-288
Arquitetura
8
Arquiteturas de Sistema
No que se baseiam as arquiteturas de sistemas distribuídos:. Na divisão de responsabilidades entre os componentes do sistema,
e;. No posicionamento (onde) desses componentes na rede.
Conseqüência:Divisão de responsabilidades e posicionamento na rede são talvez
o mais evidente aspecto do projeto de sistemas distribuídos.
Resultado:Tais características implicam na: (dos sistemas resultantes)
. Performance (desempenho)
. Confiabilidade
. Segurança
Arquitetura
9
Arquiteturas de Sistema Cliente/Servidor. Quem requisita serviço assume o papel de cliente.. Os servidores podem tornar-se clientes de outros servidores.
Arquitetura
10
Arquiteturas de Sistema
. Processos Pares:Todos os processos praticam papéis similares interagindo
cooperadamente (sem distinção entre servidores e clientes).Ex. Aplicação de quadro branco distribuído.
Arquitetura
11
Arquiteturas de Sistema – Múltiplos ServidoresArquitetura
. Serviços disponibilizados por múltiplos servidores:Servidores em computadores separados podem implementarserviços baseando-se na interação constante, particionando oureplicando os componentes do serviço (objetos por ex.) edistribuindo-os entre eles. Ex: Content Distribution Network(CDN), Web, cluster
12
Arquiteturas de Sistema
. Servidores Proxy e Cache: Armazenamento de informações de forma a aumentar a
performance. Ex. Web
Arquitetura
13
Variações no Modelo Cliente/Servidor
. Código MóvelO código da aplicação é buscado no servidor e executado nocliente. Economizar largura de banda. Ex. Applet, TV digitalinterativa
Arquitetura
14
Variações no Modelo Cliente/Servidor
. Agentes MóveisUm programa executável que “viaja” de um computador a outro na
rede, executando computações e recuperando informações, eeventualmente retornando algum resultado.
Arquitetura
15
Variações no Modelo Cliente/Servidor
. Computadores de RedeÉ diferente do conceito de computadores em
rede. Nesse caso, os computadores possuempoder de processamento e tem memória, porémnão utilizam armazenamento local. Ex: bootremoto.
Nesse exemplo, o sistema operacional eaplicações (imagens) ficam armazenadas noservidor e são descarregadas para o cliente(computador de rede) no momento do boot. Ousuário utiliza as aplicações e quaisquer dados aserem salvos, são armazenados no servidor.
Arquitetura
16
Variações no Modelo Cliente/Servidor
. Thin Clients
Similar ao modelo de computadores de rede, porém semcapacidade de processamento ou memória. Todo oprocessamento e armazenamento é executado no servidor.Apenas uma interface de acesso ao servidor é disponibilizadapelo Thin Client. Ex: X-11 window system, Citrix system
Arquitetura
17
Variações no Modelo Cliente/Servidor
. Dispositivos móveis e Redes Espontâneas(computação ubíqua)
Dispositivos de hardware com capacidade deprocessamento e comunicação sem fio atravésda rede pública de telecomunicações (ex:gsm,cdma) ou WiFi, Wimax, bluetooth, etc..com capacidade de criação de redes ad hocmóveis.
Um dos dispositivos atua como servidor e osoutros como clientes (para autenticação por ex)ou a operadora telefônica atua como servidorae os dispositivos como clientes.
Arquitetura
18
Requerimentos de Projeto para Arquiteturas Distribuídas
. Performance- Tempo de Resposta (Responsiviness)- Throughput (taxa de processamento e/ou transferência)- Balanceamento da Carga Computacional
Arquitetura
19
Requerimentos de Projeto para Arquiteturas Distribuídas
. Qualidade de Serviço- Afetada pela Confiabilidade, Segurança e Performance(características dos modelos fundamentais)
. Uso de Caching e Replicação (protocolos)
. Fidedignidade ou Confiabilidade- Correção ou Corretude
- Tolerância a Falhas (alcançada por redundância alto custo)
- Segurança
Arquitetura