Вы находитесь на странице: 1из 40

Universidade Federal do Cear

Departamento de Engenharia de Teleinformtica

Sistemas Distribudos:
Modelos
Flvio R. C. Sousa
flavio@lesc.ufc.br
@flaviosousa
www.lia.ufc.br/~flavio
Sistemas Distribudos 2016.2

Arquitetura de Sistemas Distribudos


A arquitetura de um sistema distribudo a sua
estrutura em termos de componentes.
Um modelo de arquitetura simplifica e abstrai as
funes de cada componente e considera os
seguintes itens:

A colocao de componentes na rede de computadores


A relao entre os componentes (padro de comunicao
entre eles)
Camadas de software: O termo arquitetura de software
usado para designar as camadas ou mdulos em um
nico computador.
Plataforma: Apresenta a interface de programao de
baixo nvel (comunicao, sincronizao) para as camadas
mais acima
2

Tipos de Modelos

Modelos arquitetnicos descrevem a estrutura


organizacional dos componentes do sistema

Como interagem uns com os outros


Como so mapeados para a infraestrutura fsica
(rede) subjacente

Modelos fundamentais descrevem problemas e


caractersticas chaves comuns ao projeto de
todos os tipos de sistemas distribudos

Mecanismos de interao e comunicao


Tratamento de falhas
Segurana

Modelos Arquitetnicos

Foco na arquitetura estrutura de alto nvel do


sistema, descrita em termos de componentes e seus
relacionamentos

Base para garantir que a estrutura do sistema atender sua


atual e provvel futura demanda em termos de atributos de
qualidade como confiabilidade, adaptabilidade,
desempenho, gerncia, etc.

Descrio simplificada e abstrata dos componentes


do sistema:

Funcionalidades (ou responsabilidades)


n Ex.: servidor, cliente, peer
Distribuio fsica (recursos e carga de trabalho)
n Ex.: regras de particionamento e/ou replicao
Padres de interao e comunicao
n Ex.: cliente-servidor, ponto-a-ponto

Modelos Arquitetnicos

Classificados e estudados de acordo com as suas


caractersticas comuns (estilos arquitetnicos):

Foco na diviso de responsabilidades entre os


componentes do sistema e na alocao fsica desses
componentes infraestrutura de rede

Cliente-servidor
Ponto-a-ponto

Forte influncia nos atributos de qualidade do sistema!

Na prtica, um mesmo sistema distribudo pode


apresentar caractersticas de diferentes estilos
(arquiteturas hbridas)

Taxonomia Sistemas Computacionais

Arquitetura Cliente-Servidor

Diviso das responsabilidades entre os componentes do


sistema de acordo com dois papis bem definidos:

Servidores so responsveis por gerenciar e controlar o


acesso aos recursos mantidos no sistema
Clientes interagem com servidores de modo a terem
acesso aos recursos que estes gerenciam
Alguns servidores podem assumir o papel de clientes
de outros servidores

Clientes
Servidores

Ex.: Servidor web no papel de cliente de um servidor de nomes

Continua sendo o modelo de sistema distribudo mais


estudado e utilizado na prtica!

Arquitetura Cliente-Servidor

Clientes interagem com um ou mais processos


servidores com o intuito de acessar os recursos
compartilhados que os servidores gerenciam.

Arquitetura Cliente-Servidor
Servidores podem ser clientes de outros

servidores.

Servidor Web pode ser cliente de um Servidor de


Arquivos e DNS.

A centralizao do fornecimento do servio

apresenta problemas de escalabilidade.

Limitaes na capacidade do computador


servidor e na vazo de rede para atingi-lo.

Arquitetura Peer-to-Peer

Processos envolvidos em uma atividade


desempenham papis similares e interagem
cooperativamente como pares sem distino
entre clientes e servidores.

q Explora os recursos de

um grande nmero de
participantes para
desempenhar uma
determinada tarefa.

10

Arquitetura Peer-to-Peer
Padro de comunicao depende dos requisitos
da aplicao
Objetos podem ser replicados em diversos
computadores com o intuito de oferecer
balanceamento de carga e tolerncia a falhas
O gerenciamento dos recursos e da aplicao
mais complexo que aquele na arquitetura
Cliente-Servidor

11

Arquiteturas: Variaes

Servio fornecido por Mltiplos Servidores


Servidores de Proxy e Caches
Cdigo Mvel
Agentes Mveis
Computadores em rede
Clientes Finos
Dispositivos Mveis

12

Servio com Mltiplos Servidores

Cada servio implementado por um conjunto de


servidores, possivelmente localizados em diferentes
pontos da rede
Servidores podem interagir entre si para oferecer
uma viso global consistente do servio para os
clientes
Tcnicas mais utilizadas:

Particionamento distribuio fsica dos recursos entre


os vrios servidores
n

Maior facilidade de gerncia e maior escalabilidade


Ex.: Clusters de servidores do portal UOL

Replicao manuteno de cpias do mesmo recurso


lgico em dois ou mais servidores
n

Maior desempenho e disponibilidade


Ex.: Base de dados do Google

Servio com Mltiplos Servidores


Servio implementado por vrios processos
servidores que esto em hosts separados e
interagem entre si.
Servidores podem armazenar objetos replicados.

q Um exemplo baseado em

dados replicados o NIS


(Network Information
Service). Cada servidor
NIS possui a sua prpria
rplica do arquivo de
senhas.
14

Servio com Cache e Servidor Proxy


Cache

Repositrio de cpias de objetos recentemente utilizados


que est fisicamente mais prximo do que os objetos
originais
Principais desafios:

Poltica de atualizao (controla a entrada e sada de objetos no


cache)

Localizao fsica (nos clientes ou em um ou mais servidores


proxy)

Servidor proxy

Processo compartilhado por vrios clientes que serve


como cache para os recursos disponibilizados por outros
servidores remotos
Principais funes:

n
n

Reduzir o tempo de acesso


Aumentar a disponibilidade
Tambm utilizado para proteo, filtragem, adaptao, etc.

Servio com Cache e Servidor Proxy

Computadores em Rede

Um network computer faz o download do sistema


operacional e aplicaes necessrias ao usurio de
um servidor de arquivos remoto.
Aplicaes executam localmente, mas os arquivos
so gerenciados por um servidor remoto.
Uma vez que o cdigo e os dados da aplicao so
armazenados remotamente

Usurios podem trocar de estao de trabalho sem


problemas.

Disco local usado para cache.

Objetos na cache so invalidados quando uma nova


verso do arquivo escrita no servidor.
17

Servio com Clientes Magros


Cliente magro

Camada de software com suporte para interao local com o


usurio, e que executa aplicaes e solicita servios
exclusivamente a partir de servidores remotos
n
VNC (Virtual Network Computing),
n LTSP (Linux Terminal Server Project)

A favor:
n
n

Baixo custo de hardware e software para os clientes


Maior facilidade de gerncia e manuteno das aplicaes

Contra:
Alto custo de hardware e software para os servidores
n Centralizao da carga de trabalho e do trfego de
mensagens
n Risco de sobrecarga dos servidores e/ou da rede
n Baixo desempenho para aplicaes altamente interativas
n

LTSP (Linux Terminal Server Project)

Utiliza uma combinao de DHCP, TFTP e NFS


para permitir que as estaes no apenas
rodem aplicativos instados no servidor, mas
realmente dem boot via rede, baixando todos
os softwares de que precisam diretamente do
servidor.

VNC (Virtual Network Computing)

Servio com Cdigo Mvel

Servios oferecidos na forma de um cdigo (programa)


especfico que deve ser descarregado do servidor

Aplicaes clientes executam e interagem localmente


com o cdigo mvel recebido
Dependendo do servio, cdigo mvel pode interagir
com um ou mais servidores em nome da aplicao cliente
Ex.: Java applets

Principais benefcios:

Reduo do tempo de resposta para aplicaes


interativas
Maior facilidade de customizao e atualizao da
interface de acesso ao servio
Possibilidade de estender dinamicamente as
funcionalidades das aplicaes clientes

Servio com Cdigo Mvel

Navegadores impedem que o Cdigo Mvel:

Acesse arquivos locais


Impressoras
Sockets de Rede

JVM

Classes carregadas por download so


armazenadas separadamente das classes locais,
impedindo sobrescrita por classes maliciosas
verificada a validade dos bytecodes.
n
n

Composto de instrues de um conjunto especfico?


Acessa endereos de memria invlidos?

Servio com Cdigo Mvel

Servio com Agente Mvel


Agente mvel

Programas em execuo (cdigo + dados) que circula pela


rede solicitando servios em nome de um usurio ou de uma
aplicao cliente
n

Ex.: agente para coleta de dados, busca e comparao de preos de


produtos, instalao de software, etc

O acesso aos servios feito localmente pelo agente, ou de


locais fisicamente prximos (da mesma rede local) aos
servidores

Benefcios:

Reduo dos custos e do tempo de acesso

Maior tolerncia a falhas de comunicao


n

Acesso antes remoto agora passa a ser local

Conexo necessria apenas durante a transferncia do agente

Melhor distribuio do trfego de mensagens na rede

Servio com Agentes Mveis

Servio com Objetos Distribudos


Objetos encapsulados em processos servidores

Objetos acessados por outros processos (clientes) atravs


de referncias remotas para uma ou mais de suas
interfaces
Referncia remota permite invocar remotamente os
mtodos disponveis na interface do objeto referenciado

Implementao na forma de middleware orientada a


objetos (ex.: CORBA, Java-RMI, EJB, .NET)

Diferentes mecanismos para criar, executar, publicar,


localizar, e invocar objetos remotos
Diferentes servios de suporte
n

Transao, persistncia, replicao, segurana, etc

Servio com Objetos Distribudos

Servio com Dispositivos Mveis

Formado por aplicaes clientes que executam em


dispositivos mveis (PDAs, laptops, celulares, etc) e
acessam servidores da rede fixa atravs de uma
infraestrutura de comunicao sem fio

Diferena para as variaes com cdigo mvel e agentes


mveis?

Principais benefcios:

Fcil conexo dos dispositivos a uma nova rede local


n
Incluso de novos clientes sem a necessidade de configurao
explcita
Fcil integrao dos clientes aos servios locais
n
Descoberta automtica de novos servios (sem interveno do
usurio)

Desafios de projeto:

Identificao de recursos independente de sua localizao


fsica
Limitaes de processamento, tempo de conexo e largura de
banda
Privacidade e segurana

Arquitetura de Dispositivos Mveis

Componentes de computao que se movem em


redes fsicas, levando consigo componentes de
software.

Ambos clientes e servidores podem existir como


dispositivos mveis.

Questes importantes

transparncia de mobilidade
tolerncia a falhas.

Mobilidade lida com interoperaes espontneas

Uma variao do modelo cliente-servidor no qual a


associao entre dispositivos so rotineiramente
criadas e destrudas
29

MODELOS FUNDAMENTAIS

Modelos Fundamentais

Independente de ser cliente/servidor ou p2p,


todos os modelos possuem caractersticas
comuns:

So constitudos de processos
Esses processos se comunicam atravs do envio
de mensagens atravs de uma rede de
comunicao
Requisitos de projeto semelhantes
n Desempenho e confiabilidade das redes e processos
n Segurana dos recursos compartilhados

Modelos Fundamentais
Foco em trs importantes aspectos de projeto:

Mecanismo de interao
Tratamento de falhas
Segurana
Utilizados para ajudar a planejar, entender e analisar
o comportamento esperado do sistema
Principais benefcios:

Correo antecipada de erros

Investigao, avaliao e reuso de diferentes alternativas de


projeto
Menor custo de desenvolvimento, manuteno e evoluo

Modelos Fundamentais
Modelos de Interao:

Como os processos se comunicam?


Deve refletir o fato de que a comunicao ocorre
com atrasos

Modelos de Falha:

Define e classifica as falhas

Modelos de Segurana:

Define e classifica as formas que ataques de


agentes externos ou internos podem assumir

Requisitos de Projeto

Questes chave para o projeto (arquitetura) de


um sistema distribudo

Desempenho
Qualidade de servio (QoS)
Cache e replicao
Confiabilidade

Geralmente consideradas na implementao de


aplicaes distribudas que compartilham
recursos em larga escala

Desempenho

Capacidade do sistema para reagir de forma rpida e


consistente s requisies dos usurios

Sujeita s limitaes de processamento e comunicao dos


computadores e da infraestrutura de rede

Principais fatores envolvidos:

Tempo de resposta (responsiveness - reatividade)


n Afetado pelo nmero de camadas de software necessrio

para a invocao dos servios remotos e pelo volume de


dados transferidos atravs da rede

Taxa de trabalho (throughput)


n

Medida do desempenho do sistema considerando todos os


usurios

Balanceamento de carga (load balance)


n Utilizado para explorar de forma mais eficiente os recursos

computacionais disponveis

QoS

Capacidade do sistema para oferecer servios com


garantias suficientes para atender de forma satisfatria
as necessidades especficas de seus usurios
Principais fatores:

Confiabilidade
Segurana
Desempenho
Adaptabilidade
n

para atender mudanas de configurao e disponibilidade


de recursos

Aspectos de confiabilidade, segurana e desempenho


sero abordados no contexto dos modelos
fundamentais de falha, segurana e interao,
respectivamente

QoS (cont.)

No contexto de QoS, o desempenho tambm definido


em termos da capacidade do sistema de atender
restries de tempo crtico
Em geral, essas restries devem ser mantidas durante
todo o tempo, e sob todas as circunstncias, em que os
recursos so utilizados, especialmente sob alta demanda

Recursos crticos devem ser reservados a priori junto aos


seus respectivos servidores (solicitaes no atendidas so
rejeitadas)

Garantias negociadas entre as partes atravs de acordos


em nvel de servio (SLAs)

Cache e Replicao

Capacidade do sistema para manter mltiplas


cpias de um mesmo recurso lgico fisicamente
distribudas, de modo a reduzir o seu tempo de
acesso

Ex.: protocolo de cache da web

Principais questes envolvidas:

Alocao e distribuio das rplicas


Polticas de acesso e atualizao
Mecanismo de validao
Compromisso entre a consistncia e a qualidade do servio
n

Freqncia de atualizao X desempenho


Suporte para operaes desconectadas (off-line)

Dependabilidade

Capacidade do sistema continuar operando


efetivamente, mesmo diante da ocorrncia de falhas
e da ameaa de acessos indevidos aos recursos
compartilhados
Principais questes:

Tolerncia a falhas
Obtida atravs da redundncia (replicao) de
recursos lgicos e fsicos
n Implica em maiores custo e complexidade
n

Segurana
n

Obtida atravs de mecanismos de criptografia,


garantia da integridade dos dados, assinatura digitais,
polticas de controle de acesso, etc

Obrigado!
Flvio R. C. Sousa
flavio@lesc.ufc.br
@flaviosousa
www.lia.ufc.br/~flavio

Вам также может понравиться