Buscar

SD-Aula02 - Sistemas distribuídos.

Prévia do material em texto

SISTEMAS DISTRIBUÍDOS
INTRODUÇÃO E 
MODELOS
Conteúdo
• O que é um sistema distribuído?
• Exemplos de sistemas distribuídos
• Requisitos de sistemas distribuídos
• Transparência em sistemas distribuídos
• Modelos
O que é umSistema Distribuído?
O que é umSistema Distribuído?
Hostn-1
Hostn
Host2
Host1
Middleware
Middleware
Network Operating System
Network Operating System
Hardware
Hardware
Component1 Componentn
Middleware
Network Operating System
Hardware
Component1 Componentn
Middleware
Network Operating System
Hardware
Component1 Componentn
Component1 Componentn
Network
O que é umSistema Distribuído?
Um sistema distribuído é uma coleção de hosts 
autônomos, conectados através de uma rede de 
computadores. Cada host executa componentes e 
opera um middleware de distribuição, o qual habilita 
os componentes a coordenarem suas atividades de 
tal forma que usuários percebam o sistema como um 
ambiente computacional único e integrado.
Exemplos deMiddleware
• Orientados a Transações
• IBM CICS
• BEA Tuxedo
• IBM Encina
• Microsoft Transaction 
Server
• Orientados a Mensagens
• Microsoft Message Queue
• NCR TopEnd
• Sun Tooltalk
• Procedural
• Sun ONC
• Linux RPCs
• OSF DCE
• Orientado a Objetos
• OMG CORBA
• Sun Java/RMI
• Microsoft COM
• Sun Enterprise Java Beans
Características de Sistemas 
Centralizados
• Um componente, com partes não autônomas
• Componentes são compartilhados por todos os 
usuários durante todo o tempo
• Todos os recursos acessíveis (tipicamente)
• Software ‘roda’ em um único processo
• Ponto de controle único
• Ponto de falha único
Características de Sistemas 
Distribuídos
• Múltiplos componentes autônomos
• Componentes não são compartilhados por todos os 
usuários
• Recursos podem não ser acessíveis
• Software ‘roda’ em processos concorrentes e em
processadores distintos
• Múltiplos pontos de controle
• Múltiplos pontos de falha (!!!)
Exemplos de SistemasDistribuídos
Motivação
• Estudos de caso
• Sistema de video-sob-demanda (Hongkong Telecom)
• Infra-estrutura de informática (setor bancário)
• Sistema de gerenciamento de configurações de aeronaves 
(Boeing)
• Sistema de gerência de federação de futebol
• Desenvolvidos empregando os princípios e técnicas 
apresentados neste curso
• Servem como exemplos ilustrativos para o curso
Ex.1: Sistema de 
Vídeo-sob-Demanda
• Objetivo: prover aos assinantes facilidades para o ‘download’ devídeos 
a partir de servidores para serem apresentados em Web-TVs de baixo 
custo
• Atualmente: cerca de 100.000 usuários
• Construído utilizando tecnologia de objetos
…
Requisitos: Heterogeneidade
• Hardware:
• Clientes: Web-TV
• Servidores: processador RISC
• Sistemas operacionais:
• Clientes: JavaOS
• Servidores: UNIX
• Linguagens de programação:
• Clientes: Java
• Servidores: C++
Baseado em Emmerich, 2000 Prof. Fábio M. Costa 11
Requisitos (cont.)
• Comunicação através da rede
• Como transmitir estruturas de dados complexas através 
da Internet?
• Escala
• Expansão para um grande número de usuários
• Segurança
• Forma segura de pagamento
• Autenticação e controle de acesso
Por que Tecnologias deObjetos 
Distribuídos?
• Distribuição:
• Clientes de vídeo necessitam fazer o ‘download’ / exibição
de vídeo na Web-TV do usuário final
• Múltiplos servidores (balanceamento de carga)
• Tecnologia de objetos:
• Clientes de vídeo escritos em Java:
• Web-TV contém um Máquina Virtual Java
• Portabilidade - ex: Sony Playstation, Sega Console
• Servidores de vídeo escritos em C++: desempenho
Por que Tecnologias deObjetos 
Distribuídos? (cont.)
• Uma maneira natural de particionar a 
funcionalidade de uma aplicação ou sistema
• Objetos: unidades funcionais autônomas que se 
comunicam entre si através da troca de mensagens
• Abstração ideal para a construção de sistemas 
distribuídos
• Objetos diferentes podem ser instalados em 
computadores distintos
• Cooperação através de mensagens transmitidas pela rede
Ex.2: Infra-estrutura de Informática 
Empresarial (Setor Bancário)
Estação de
Negócios
Serviços de 
Autorização
Serviço de 
Informações 
de Clientes
Serviço de Banco 
de Dados de Produtos
Serviços de 
Marketing
Requisitos
• Tempo para se chegar ao mercado
• Desenvolvimento de novas aplicações com tecnologia 
recente
• Integração de novas aplicações tem se tornado cada vez 
mais difícil
• Escalabilidade
• Administração de milhões de contas e clientes
• Milhares de usuários concorrentes
• Confiabilidade
Requisitos (cont.)
• Heterogeneidade de Hardware
• Mainframes (Unisys, IBM, etc.)
• Servidores SUN SPARC
• PCs
• Heterogeneidade de Sistema Operacional
• MVS, UNIX, Linux, Windows
• Heterogeneidade de Linguagem de Programação
• Cobol, C/C++, Visual Basic, Java
Por que Tecnologia deObjetos 
Distribuídos
• Permite uma visão uniforme de todos os serviços 
da empresa e de como acessá-los
• Provê um nível apropriado de abstração
• Preserva o investimento encapsulando aplicações 
legadas
• Permite explorar as vantagens da tecnologia de 
objetos em novos projetos
• Uma forma natural de resolver:
• distribuição
• heterogeneidade
Ex.3: Gerência deConfiguração 
Boeing 777
Problemas a seremresolvidos
• Escala
• 3.000.000 de peças por aeronave
• A configuração de cada aeronave é diferente
• Regulamentos demandam que registros sejam 
mantidos para cada peça de uma aeronave
• Aeronave evolui durante manutenções
• Produção de 500 aeronaves por ano
• Banco de dados de configuração cresce 1,5 bilhão de 
partes a cada ano
• Tempo de vida de uma aeronave: 30 anos
• 45.000 engenheiros necessitam acesso on-line aos 
dados de configurações
Problemas a serem resolvidos(cont.)
• Integração de componentes de prateleira
• Infra-estrutura de TI se tornou inadequada
• Mas a empresa não podia se dar ao luxo de re-construir 
toda a sua infra-estrutura de TI
• Componentes foram comprados de diversos fabricantes
especializados
• Banco de dados relacional
• Planejamento de recursos da empresa (ERP)
• Planejamento de projetos auxiliado por computador
• Componentes precisavam ser integrados
Problemas a serem resolvidos(cont.)
• Heterogeneidade
• 20 máquinas de banco de dados Sequent para gerenciar 
os dados de configuração de aviões
• 200 servidores de applicações UNIX
• Estações de trabalho NT e UNIX para os engenheiros
Por que Tecnologia deObjetos 
Distribuídos
• Componentes de prateleira encapsulam a 
funcionalidade da aplicação
• Resolvendo o problema de distribuição em um 
nível mais elevado de abstração
• Resolvendo o problema da heterogeneidade
• Escalabilidade da solução
Ex.4: Administração de umaFederação 
de Futebol
• Administração de campeonatos, seleção nacional, 
clubes, transferência de jogadores, etc.
• Sistema imaginário
• Exemplo comum, que pode ser ajustado com 
finalidade didática
Requisitos
• Autonomia dos clubes
• Cada clube opera sua própria administração, 
treinamento, escala de jogos e jogadores, etc.
• Necessidade de integração para:
• o registro de jogadores na federação de futebol
• requisitar jogadores para a seleção nacional
• combinar a escala de jogos do campeonato
• Heterogeneidade
• Diferentes máquinas (Windows, Linux, etc.)
• Diferentes linguagens de programação
Requisitos de SistemasDistribuídos
Requisitos Gerais
• Integração de componentes
• Componentes novos, implementados com a mais 
moderna tecnologia
• Componentes de prateleira (COTS), que não podem ser 
modificados
• Componentes legados, sem a necessidade de uma re-
engenharia
• Heterogeneidade
• Plataformas de hardware, sistemas operacionais, 
linguagens de programação e redes
Requisitos Comuns
Qual o objetivo da construção de um sistema
distribuído?
• Compartilhamento de Recursos
• Abertura
• Concorrência
• Escalabilidade
• Tolerância a Falhas
• Transparência
Compartilhamento deRecursos
• Habilidade de usar qualquer hardware,software ou 
dados em qualquer lugar do sistema
• Gerenciador de recursos
• Controla o acesso aos recursos
• Provê um esquema de nomes para os recursos
• Controla acessos concorrentes aos recursos
Baseado em Emmerich, 2000 Prof. Fábio M. Costa 29
Compartilhamento de Recursos(2)
• Modelo de compartilhamento
• Cliente / Servidor
• Baseado em objetos
• Define:
• a forma pela qual recursos são providos
• formas de uso dos recursos
• como o provedor do recurso e os usuários interagem 
entre si e com o gerenciador
Abertura
• Relacionada com futuras extensões e melhorias que 
um sistema distribuído pode sofrer
• Novos componentes precisam ser integrados, 
juntamente com componentes existentes (legados)
• Provenientes de diversas fontes
• Usando diferentes tecnologias
• Necessário publicar interfaces detalhadas dos 
componentes
• Diferenças de representação de dados precisam ser 
resolvidas (para uma troca de informações efetiva)
Concorrência
• Em um sistema distribuído, componentes são 
executados em paralelo
• Em processos ou máquinas diferentes
• Componentes acessam e atualizam recursos 
compartilhados (variáveis, bancos de dados)
• A integridade do sistema pode ser violada se 
atualizações concorrences não forem coordenadas
• Atualizações podem ser perdidas (sobrescritas)
• Análise de dados pode ficar inconsistente
Baseado em Emmerich, 2000 Prof. Fábio M. Costa 32
Escalabilidade
• Adaptação de sistemas distribuídos para
• Acomodar mais usuários
• Obter um tempo de resposta mais rápido
• Usualmente através da adição de mais 
processadores
• Componentes não devem necessitar ser alterados 
quando a escala do sistema cresce
➢Componentes devem ser projetados para serem
escaláveis
Tolerância a Falhas
• Hardware, software e redes podem falhar!
• Um sistema distribuído deve manter sua 
disponibilidade mesmo em baixos níveis de 
confiabilidade do hardware/software/rede
• Tolerância a falhas pode ser obtida com:
• técnicas de recuperação
• redundância
Transparência em 
Sistemas Distribuídos
Transparência
• Um sistema distribuído deve ser percebido por 
seus usuários e pelos programadores de aplicações 
como um sistema único e coeso
• ao invés de uma coleção de máquinas separadas
• Várias dimensões de transparência identificadas 
pelo modelo ISO RM-ODP
• Modelo de Referência para Sistemas Distribuídos
Abertos
• Representam as diversas propriedades que um 
sistema distribuído deve possuir
Transparências de Distribuição
Baseado em Emmerich, 2000 Prof. Fábio M. Costa 37
Access 
Transparency
Location 
Transparency
Concurrency 
Transparency
Migration
Transparency
Performance
Transparency
Scalability
Transparency
Replication
Transparency
Failure 
Transparency
Transparência deAcesso
• Permite que objetos e informações remotas sejam 
acessados usando operações idênticas
• Mascara as diferentes formas de acesso 
empregadas por cada tecnologia utilizada
• Exemplos:
• Operações de acesso a um sistema de arquivos
distribuído com NFS (Network File System)
• Navegação na WEB
• Consultas em SQL
Transparência deLocalização
• Permite que objetos e informações sejam 
acessados sem o conhecimento de sua localização
• Exemplos:
• Arquivos acessados via NFS
• Páginas na WEB (*)
• Tabelas em um banco de dados distribuído
Transparência de Concorrência
• Permite que vários processos operem 
concorrentemente usando objetos de informação 
compartilhados sem interferirem entre si
• Exemplos:
• NFS
• Caixa eletrônico
• Sistema gerenciador de bancos de dados (SGBD)
Transparência deReplicação
• Permite que múltiplas instâncias de objetos de 
informação sejam usados para melhorar o 
desempenho e a confiabilidade
• Sem que os usuários ou programadores de 
aplicações tomem conhecimento da existência das 
réplicas
• Exemplos:
• SGBD distribuído
• Espelhamento de páginas WEB
Transparência deFalhas
• Mascara a ocorrência de falhas
• Permite que usuários e aplicações completem suas 
tarefas normalmente a despeito de falhas em 
alguns componentes do sistema
• Exemplo:
• Transações em um SGBD
Transparência deMigração
• Permite a movimentação de um objeto dentro do 
sistema distribuído sem afetar as operações dos 
usuários ou dos programas de aplicação
• Duas variantes:
• Migração propriamente dita: com relação ao objeto 
migrado
• Relocação: com relação a outros objetos no sistema
• Exemplos:
• NFS
• Páginas WEB
Baseado em Emmerich, 2000 Prof. Fábio M. Costa 43
Transparência de Desempenho
• Permite que o sistema distribuído seja 
reconfigurado para melhorar o desempenho para 
refletir mudanças na carga de processamento
• Através de replicação e migração
• Exemplo:
• Utilitário make distribuído
• Programa é compilado em várias máquinas em paralelo,
transparentemente para o usuário
Transparência deEscala
• Permite que o sistema e as aplicações possam ser 
expandidos em escala sem a necessidade de 
mudanças em sua estrutura ou nos algoritmos 
utilizados
• Exemplo:
• WWW
• Bancos de dados distribuídos
Pontos-Chave
• O que é um Sistema Distribuído
• Adoção de sistemas distribuídos é regida por 
requisitos não-funcionais
• Necessidades de distribuição são transparentes 
aos usuários e projetistas de aplicações
• Várias dimensões de transparência
• Dimensões de transparência dependem entre si
Arquitetura de SistemasDistribuídos
▪ A arquitetura de um sistema distribuído é a sua 
estrutura em termos de componentes.
▪ Um modelo de arquitetura simplifica e abstrai as 
funções de cada componente e considera os 
seguintes itens:
• A colocação de componentes na rede decomputadores
• A relação entre os componentes (padrão de comunicação 
entreeles)
• Camadas de software: O termo arquitetura de software é 
usado para designar as camadas ou módulos em um 
únicocomputador.
• Plataforma: Apresenta a interface de programação de 
baixo nível (comunicação, sincronização) para as camadas 
maisacima
2
Tipos deModelos
▪ Modelos arquitetônicos descrevem a estrutura 
organizacional dos componentes do sistema
• Como interagem uns com osoutros
• Como são mapeados para a infraestrutura física 
(rede) subjacente
▪ Modelos fundamentais descrevem problemas e 
características chaves comuns ao projeto de 
todos os tipos de sistemasdistribuídos
• Mecanismos de interação ecomunicação
• Tratamento defalhas
• Segurança
Modelos Arquitetônicos
▪ Foco na arquitetura – estrutura de alto nível do 
sistema, descrita em termos de componentes e seus 
relacionamentos
• Base para garantir que a estrutura do sistema atenderá sua 
atual e provável futura demanda em termos de atributos de 
qualidade como confiabilidade, adaptabilidade, 
desempenho, gerência, etc.
▪ Descrição simplificada e abstrata dos componentes 
do sistema:
• Funcionalidades (ou responsabilidades)
◼ Ex.: servidor, cliente,peer
• Distribuição física (recursos e carga de trabalho)
◼ Ex.: regras de particionamento e/oureplicação
• Padrões de interação ecomunicação
◼ Ex.: cliente-servidor,ponto-a-ponto
Modelos Arquitetônicos
▪ Classificados e estudados de acordo com as suas 
características comuns (“estilosarquitetônicos”):
• Cliente-servidor
• Ponto-a-ponto
▪ Foco na divisão de responsabilidades entre os 
componentes do sistema e na alocação física desses 
componentes à infraestrutura de rede
• Forte influêncianosatributos dequalidade do sistema!
▪ Na prática, um mesmo sistema distribuído pode 
apresentar características de diferentes estilos 
(arquiteturashíbridas)
Taxonomia – Sistemas Computacionais
Arquitetura Cliente-Servidor
▪ Divisão das responsabilidades entre os componentes do 
sistema de acordo com dois papéis bem definidos:
• Clientes
• Servidores
▪ Servidores são responsáveis por gerenciar e controlar o 
acesso aos recursos mantidos nosistema
▪ Clientes interagem com servidores de modo a terem 
acesso aos recursos que estesgerenciam
▪ Alguns servidorespodem assumir o papel de clientes 
de outros servidores
• Ex.: Servidor web no papel de cliente de um servidor de nomes
▪ Continua sendo o modelo de sistema distribuído mais 
estudado e utilizado na prática!
Arquitetura Cliente-Servidor
▪ Clientes interagem com um ou mais processos
servidorescomo intuito deacessarosrecursos
compartilhadosqueosservidoresgerenciam.
8
Arquitetura Cliente-Servidor
▪ Servidores podem ser clientes de outros 
servidores.
• Servidor Web pode ser clientede um Servidor de 
Arquivos e DNS.
▪ A centralização do fornecimento do serviço 
apresenta problemas deescalabilidade.
• Limitaçõesnacapacidadedo computador 
servidor e na vazão de rede paraatingi-lo.
9
Arquitetura Peer-to-Peer
10
▪ Processos envolvidos em uma atividade 
desempenham papéis similares e interagem 
cooperativamente como pares sem distinção 
entre clientes eservidores.
❑ Explora os recursos de 
um grande número de 
participantes para 
desempenhar uma 
determinada tarefa.
Arquitetura Peer-to-Peer
▪ Padrão de comunicação depende dos requisitos 
daaplicação
▪ Objetos podem ser replicados em diversos 
computadores com o intuito de oferecer 
balanceamento de carga e tolerância afalhas
▪ O gerenciamento dos recursos e da aplicação é 
mais complexo que aquele na arquitetura 
Cliente-Servidor
11
Arquiteturas: Variações
▪ Serviço fornecido por Múltiplos
Servidores
▪ Servidores de Proxy eCaches
▪ Código Móvel
▪ AgentesMóveis
▪ Computadores em rede
▪ ClientesFinos
▪ DispositivosMóveis
12
Serviço com Múltiplos Servidores
▪ Cada serviço é implementado por um conjunto de 
servidores, possivelmente localizados em diferentes 
pontos da rede
▪ Servidores podem interagir entre si para oferecer 
uma visão global consistente do serviço para os 
clientes
▪ Técnicas maisutilizadas:
• Particionamento – distribuição física dos recursos entre 
os váriosservidores
◼ Maior facilidade de gerência e maior escalabilidade
◼ Ex.: Clusters de servidores do portalUOL
• Replicação – manutenção de cópias do mesmo recurso 
lógico em dois ou maisservidores
◼ Maior desempenho e disponibilidade
◼ Ex.: Base de dados doGoogle
Serviço com MúltiplosServidores
14
▪ Serviço implementadopor váriosprocessos
servidores que estão em hosts separados e
interagementre si.
▪ Servidorespodemarmazenarobjetosreplicados.
❑ Um exemplo baseado em 
dados replicados é o NIS 
(Network Information 
Service). Cada servidor 
NIS possui a sua própria 
réplica do arquivo de 
senhas.
Serviço com Cache e ServidorProxy
▪ Cache
• Repositório de cópias de objetos recentemente utilizados 
que está fisicamente mais próximo do que os objetos 
originais
• Principaisdesafios:
◼ Política de atualização (controla a entrada e saída de objetos no 
cache)
• Localização física (nos clientes ou em um ou mais servidores 
proxy)
▪ Servidorproxy
• Processo compartilhado por vários clientes que serve 
como cache para os recursos disponibilizados por outros 
servidores remotos
• Principaisfunções:
◼ Reduzir o tempo de acesso
◼ Aumentar adisponibilidade
◼ Também utilizado para proteção, filtragem, adaptação, etc.
Serviço com Cache e ServidorProxy
Computadores emRede
▪ Um “network computer” faz o download do sistema 
operacional e aplicações necessárias ao usuário de 
um servidor de arquivosremoto.
▪ Aplicações executam localmente, mas os arquivos 
são gerenciados por um servidor remoto.
▪ Uma vez que o código e os dados da aplicação são 
armazenadosremotamente
• Usuários podem trocar de estação de trabalho sem 
problemas.
▪ Disco local é usado paracache.
• Objetos na cache são invalidados quando uma nova 
versão do arquivo é escrita noservidor.
17
Serviço com ClientesMagros
▪ Clientemagro
• Camada de software com suporte para interação local com o 
usuário, e que executa aplicações e solicita serviços 
exclusivamente a partir de servidoresremotos
◼ VNC (Virtual Network Computing),
◼ LTSP (Linux Terminal Server Project)
• Afavor:
◼ Baixocustodehardwareesoftwareparaosclientes
◼ Maior facilidade de gerência e manutenção dasaplicações
• Contra:
◼ Altocustodehardwareesoftwareparaosservidores
◼ Centralização da carga de trabalho e do tráfego de 
mensagens
◼ Risco de sobrecarga dos servidores e/ou da rede
◼ Baixo desempenho para aplicações altamenteinterativas
LTSP (Linux Terminal ServerProject)
▪ Utiliza uma combinação de DHCP, TFTP e NFS 
para permitir que as estações não apenas 
rodem aplicativos instados no servidor, mas 
realmente dêem boot via rede, baixando todos 
os softwares de que precisam diretamente do 
servidor.
VNC (Virtual NetworkComputing)
Serviço com CódigoMóvel
▪ Serviços oferecidos na forma de um código (programa) 
específico que deve ser descarregado doservidor
• Aplicações clientes executam e interagem localmente 
com o código móvelrecebido
• Dependendo do serviço, código móvel pode interagir 
com um ou mais servidores em nome da aplicaçãocliente
• Ex.: Javaapplets
▪ Principaisbenefícios:
• Redução do tempo de resposta para aplicações 
interativas
• Maior facilidade de customização e atualização da 
interface de acesso ao serviço
• Possibilidade de estender dinamicamente as 
funcionalidades das aplicaçõesclientes
Serviço com CódigoMóvel
▪ Navegadores impedem que o Código Móvel:
• Acesse arquivos locais
• Impressoras
• Sockets deRede
▪ JVM
• Classes carregadas por download são 
armazenadas separadamente das classes locais, 
impedindo sobrescrita por classesmaliciosas
• É verificada a validade dos bytecodes.
◼ Composto de instruções de um conjunto específico?
◼ Acessa endereços de memória inválidos?
Serviço com CódigoMóvel
Serviço com AgenteMóvel
▪ Agentemóvel
• Programas em execução (código + dados) que circula pela 
rede solicitando serviços em nome de um usuário ou de uma 
aplicaçãocliente
◼ Ex.: agente para coleta de dados, busca e comparação de preços de 
produtos, instalação de software,etc
• O acesso aos serviços é feito localmente pelo agente, ou de 
locais fisicamente próximos (da mesma rede local) aos 
servidores
▪ Benefícios:
• Redução dos custos e do tempo deacesso
◼ Acesso antes remoto agora passa a serlocal
• Maior tolerância a falhas decomunicação
◼ Conexão necessária apenas durante a transferência do agente
• Melhor distribuição do tráfego de mensagens na rede
Serviço com AgentesMóveis
Serviço com ObjetosDistribuídos
▪ Objetos encapsulados em processosservidores
• Objetos acessados por outros processos (clientes) através 
de referências remotas para uma ou mais de suas 
interfaces
• Referência remota permite invocar remotamente os 
métodos disponíveis na interface do objeto referenciado
▪ Implementação na forma de middleware orientada a 
objetos (ex.: CORBA, Java-RMI, EJB,.NET)
• Diferentes mecanismos para criar, executar, publicar, 
localizar, e invocar objetosremotos
• Diferentes serviços de suporte
◼ Transação, persistência, replicação, segurança, etc
Serviço com ObjetosDistribuídos
Serviço com DispositivosMóveis
▪ Formado por aplicações clientes que executamem
dispositivos móveis (PDAs, laptops, celulares, etc)e
acessam servidores da rede fixa através de uma 
infraestrutura de comunicação semfio
• Diferença para as variações com código móvel e agentes 
móveis?
▪ Principaisbenefícios:
• Fácil conexão dos dispositivos a uma nova redelocal
◼ Inclusão de novos clientes sem a necessidade de configuração 
explícita
• Fácil integração dos clientes aos serviçoslocais
◼ Descoberta automática de novos serviços (sem intervenção do 
usuário)
▪ Desafios de projeto:
• Identificação de recursos independente de sua localização 
física
• Limitações de processamento, tempo de conexão e largura de 
banda
• Privacidade e segurança
Arquitetura de DispositivosMóveis
▪ Componentes de computação que se movem em 
redes físicas, levando consigo componentes de 
software.
• Ambos clientes e servidorespodem existir como 
dispositivosmóveis.
▪ Questões importantes
• transparência demobilidade
• tolerância a falhas.
▪ Mobilidade lida com interoperaçõesespontâneas
• Uma variação do modelo cliente-servidor no qual a 
associação entre dispositivos são rotineiramente 
criadas edestruídas
29
MODELOS FUNDAMENTAIS
Modelos Fundamentais
▪ Independente de ser cliente/servidor ou p2p, 
todos os modelos possuem características 
comuns:
• São constituídos deprocessos
• Esses processos se comunicam através do envio 
de mensagens através de uma rede de 
comunicação
• Requisitos de projeto semelhantes
◼ Desempenho e confiabilidade das redes eprocessos
◼ Segurança dos recursoscompartilhados
Modelos Fundamentais
▪ Foco em três importantes aspectos deprojeto:
• Mecanismo de interação
• Tratamento defalhas
• Segurança
▪ Utilizados para ajudar a planejar, entender e analisar 
o comportamento esperado do sistema
▪ Principaisbenefícios:
• Correção antecipada de erros
• Investigação, avaliação e reuso de diferentes alternativas de 
projeto
• Menor custo de desenvolvimento, manutenção e evolução
Modelos Fundamentais
▪ Modelos de Interação:
• Como os processos secomunicam?
• Deve refletir o fato de que a comunicação ocorre 
comatrasos
▪ Modelos de Falha:
• Define e classifica asfalhas
▪ Modelos de Segurança:
• Define e classifica as formas que ataques de 
agentes externos ou internos podem assumir
Requisitos deProjeto
▪ Questões chave para o projeto (arquitetura) de 
um sistema distribuído
• Desempenho
• Qualidade de serviço (QoS)
• Cache ereplicação
• Confiabilidade
▪ Geralmente consideradas na implementação de 
aplicações distribuídas que compartilham 
recursos em largaescala
Desempenho
▪ Capacidade do sistema para reagir de forma rápida e 
consistente às requisições dos usuários
• Sujeita às limitações de processamento e comunicação dos 
computadores e da infraestrutura de rede
▪ Principais fatores envolvidos:
• Tempo de resposta (responsiveness - reatividade)
◼ Afetado pelo número de camadas de software necessário 
para a invocação dos serviços remotos e pelo volume de 
dados transferidos através darede
• Taxa de trabalho (throughput)
◼ Medida do desempenho do sistema considerando todos os 
usuários
• Balanceamento de carga (loadbalance)
◼ Utilizado para explorar de forma mais eficiente os recursos
computacionais disponíveis
QoS
▪ Capacidade do sistema para oferecer serviços com 
garantias suficientes para atender de forma satisfatória 
as necessidades específicas de seususuários
▪ Principaisfatores:
• Confiabilidade
• Segurança
• Desempenho
• Adaptabilidade
◼ para atender mudanças de configuração e disponibilidade 
de recursos
▪ Aspectos de confiabilidade, segurança e desempenho 
serão abordados no contexto dos modelos 
fundamentais de falha, segurança e interação, 
respectivamente
QoS (cont.)
▪ No contexto de QoS, o desempenho também é definido 
em termos da capacidade do sistema de atender 
restrições de tempo crítico
▪ Em geral, essas restrições devem ser mantidas durante 
todo o tempo, e sob todas as circunstâncias, em que os 
recursos são utilizados, especialmente sob altademanda
• Recursos críticos devem ser reservados a priori junto aos 
seus respectivos servidores (solicitações não atendidas são 
rejeitadas)
▪ Garantias negociadas entre as partes através de acordos 
em nível de serviço(SLAs)
Cache eReplicação
▪ Capacidade do sistema para manter múltiplas 
cópias de um mesmo recurso lógico fisicamente 
distribuídas, de modo a reduzir o seu tempo de 
acesso
• Ex.: protocolo de cache daweb
▪ Principais questões envolvidas:
• Alocação e distribuição das réplicas
• Políticas de acesso e atualização
• Mecanismo devalidação
• Compromisso entre a consistência e a qualidade do serviço
◼ Freqüência de atualização X desempenho
◼ Suporte para operações “desconectadas”(off-line)
Dependabilidade
▪ Capacidade do sistema continuar operando 
efetivamente, mesmo diante da ocorrência de falhas 
e da ameaça de acessos indevidos aos recursos 
compartilhados
▪ Principaisquestões:
• Tolerância a falhas
◼ Obtida através da redundância (replicação) de 
recursos lógicos efísicos
◼ Implica em maiores custo e complexidade
• Segurança
◼ Obtida através de mecanismos de criptografia, 
garantia da integridade dos dados, assinatura digitais, 
políticas de controle de acesso,etc

Continue navegando