Modelos de Sistemas Distribuídos . Introdução . Modelos

Propaganda
Modelos de Sistemas Distribuídos
. Introdução
. Modelos Arquiteturais
. Requerimentos de Projeto para Arquiteturas
Distribuídas
1
Introdução
Introdução
. Existem 2 conjuntos de modelos de sistemas
distribuídos:
-> Conjunto dos Modelos Arquiteturais;
-> Conjunto dos Modelos Fundamentais;
. Cada modelo tem a intenção de disponibilizar
uma descrição abstrata e simplificada, mas
consistente dos aspectos relevantes do
projeto de sistemas distribuídos.
2
Introdução
Introdução
Modelos Arquiteturais estão preocupados
com a disposição das partes do sistema
distribuído e da relação/interação entre
elas
Modelos Fundamentais preocupam-se
com as propriedades que são comuns a
todos os modelos arquiteturais.
3
Modelos Arquiteturais
Modelos
. A arquitetura de um Sistema é sua estrutura em termos de
componentes especificados separadamente, e assim fazer um
sistema 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 de
trabalho)
. A inter-relação entre os componentes (os papéis funcionais
e os padrões de comunicação entre eles).
Conceitos:
. Processo servidor;
. Processo cliente;
. Processos pares; (cooperam e comunicam de maneira simétrica)
4
Arquitetura de Software
Arquitetura
. Originalmente é a estruturação do software como
camadas ou módulos em um único computador e mais
recentemente em termos de serviços oferecidos e
requisitados entre processos localizados no mesmo ou
em computadores diferentes.
-> Plataforma (hardware/Sistema Operacional. Ex: intel
x86/Windows, PowerPC/Mac OS X);
->Middleware (modelo de programação
mascarando heterogeneidade);
conveniente
5
Arquitetura de Software
Arquitetura
Source: Coulouris et al.
6
Arquitetura de Software
Arquitetura
. Limitações de Middleware (principalmente middleware de
comunicação
The end-to-end argument
Em muitos casos o comportamento correto de SDs depende de
verificações, mecanismos de correção de erro e medidas de
segurança em muitos níveis, alguns dos quais requerendo
acesso a dados dentro do espaço de endereçamento da
aplicação. Qualquer tentativa de verificação dessas condições
apenas dentro do sistema de comunicação (middleware) será
insuficiente, e o trabalho provavelmente terá de ser feito tbém
no nível da aplicação, disperdiçando esforço de programação, e
mais importante, adicionando complexidade e executando
operações redundantemente.
Saltzer, J.H., Reed, D.P., and Clarke, D. (1984). End-to-End Arguments in System
Design, ACM Transactions on Computer Systems Vol. 2, Nº 4, pp. 277-288
7
Arquiteturas de Sistema
Arquitetura
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
8
Arquiteturas de Sistema
Arquitetura
Cliente/Servidor
. Quem requisita serviço assume o papel de cliente.
. Os servidores podem tornar-se clientes de outros servidores.
9
Arquiteturas de Sistema
Arquitetura
. 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.
10
Arquitetura
Arquiteturas de Sistema – Múltiplos Servidores
. Serviços disponibilizados por múltiplos servidores:
Servidores em computadores separados podem implementar
serviços baseando-se na interação constante, particionando ou
replicando os componentes do serviço (objetos por ex.) e
distribuindo-os entre eles. Ex: Content Distribution Network
(CDN), Web, cluster
11
Arquiteturas de Sistema
Arquitetura
. Servidores Proxy e Cache:
Armazenamento de informações de forma a aumentar a
performance. Ex. Web
12
Variações no Modelo Cliente/Servidor
Arquitetura
. Código Móvel
O código da aplicação é buscado no servidor e executado no
cliente. Economizar largura de banda. Ex. Applet, TV digital
interativa
13
Variações no Modelo Cliente/Servidor
Arquitetura
. Agentes Móveis
Um programa executável que “viaja” de um computador a outro na
rede, executando computações e recuperando informações, e
eventualmente retornando algum resultado.
14
Variações no Modelo Cliente/Servidor
Arquitetura
. Computadores de Rede
É diferente do conceito de computadores em
rede. Nesse caso, os computadores possuem
poder de processamento e tem memória, porém
não utilizam armazenamento local. Ex: boot
remoto.
Nesse exemplo, o sistema operacional e
aplicações (imagens) ficam armazenadas no
servidor e são descarregadas para o cliente
(computador de rede) no momento do boot. O
usuário utiliza as aplicações e quaisquer dados a
serem salvos, são armazenados no servidor.
15
Variações no Modelo Cliente/Servidor
Arquitetura
. Thin Clients
Similar ao modelo de computadores de rede, porém sem
capacidade de processamento ou memória. Todo o
processamento e armazenamento é executado no servidor.
Apenas uma interface de acesso ao servidor é disponibilizada
pelo Thin Client. Ex: X-11 window system, Citrix system
16
Arquitetura
Variações no Modelo Cliente/Servidor
.
Dispositivos móveis
(computação ubíqua)
e
Redes
Espontâneas
Dispositivos de hardware com capacidade de
processamento e comunicação sem fio através
da rede pública de telecomunicações (ex:
gsm,cdma) ou WiFi, Wimax, bluetooth, etc..
com capacidade de criação de redes ad hoc
móveis.
Um dos dispositivos atua como servidor e os
outros como clientes (para autenticação por ex)
ou a operadora telefônica atua como servidora
e os dispositivos como clientes.
17
Arquitetura
Requerimentos de Projeto para Arquiteturas Distribuídas
. Performance
- Tempo de Resposta (Responsiviness)
- Throughput (taxa de processamento e/ou transferência)
- Balanceamento da Carga Computacional
18
Arquitetura
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
- Segurança
alto custo)
19
Download