UNIVERSIDADE
Computação
Aula 03-04: Modelos de Sistemas Distribuídos
2o. Semestre / 2014
Prof. Jesus
Principais questões no projeto de um
sistema distribuído (SD)
●
●
●
●
Questão de acesso (como sist. será acessado)
–
Grandes variações na carga de trabalho
–
Componente desconectado na maior parte do tempo (se conecta
algumas vezes)
–
Componentes necessitam de recursos tais como largura de banda,
processamento, espaço em disco.
Diferentes tipos de ambiente: o SD deve lidar com diferentes
tipos de hardware, sistemas operacionais e redes
Problemas internos: ausência de relógio interno, dados
conflitantes, falhas no sistema
Segurança: proteção contra ataques externos.
2
Principais questões no projeto de um
sistema distribuído (SD)
Para lidar com estas e outras
apresentados os seguintes modelos:
●
questões
são
Modelo Arquitetural
– define como os componentes de um SD interagem entre si e
estão distribuídos pela rede.
●
Modelo Fundamental
–
define os principais problemas a serem resolvidos para que
um SD funcione corretamente sendo confiável e seguro
3
Principais questões no projeto de um
sistema distribuído (SD)
Modelo fundamental se dividem em três principais tipos:
●
Modelo de interação
–
●
Modelo de falhas
–
●
Lida com questões de desempenho e limites de tempo.
Busca definir as principais falhas que podem ocorrer em um
sistema e fornecer mecanismos de comunicação
confiáveis
Modelo de segurança
–
Define as principais ameaças para um sistema e como lidar
com elas
4
Modelos Arquiteturais de Sistemas
Distribuídos
●
●
●
Tornar um SD confiável, gerenciável, adaptável
Modelo arquitetural simplifica e abstrai as funções de
componentes individuais considerando:
–
O posicionamento deste componentes dentro da rede
–
O relacionamento entre estes componentes
Classificar processos como de servidor, de cliente ou de
peer
–
Identificar responsabilidades de cada processo
–
Obter desempenho e confiabilidade
5
Modelos Arquiteturais de Sistemas
Distribuídos
●
●
Esta classificação (cliente, servidor, peer) é importante
pois permite:
–
Identificar a função de cada processo e sua importância para
o sistema
–
Tornar o sistema mais organizado e eficiente
Sistemas mais dinâmicos que permitem
–
Mover um código de um processo para outro
–
Disposivitos computacionais sejam adicionados ou retirado
de um sistema distribuído de forma transparente
6
Arquitetura de software
●
●
●
O conjunto de serviços disponíveis para processos
distribuídos localmente ou remotamente
Serviços são responsáveis pelo gerenciamento de
recursos
Alguns destes serviços são fornecidos por uma plataforma
7
Plataforma
●
●
Camadas de hardware e software mais inferiores para
sistemas distribuídos
Fornecem serviços para as camadas superiores
–
●
Facilitar a coordenação e a comunicação entre processos
Possuem diferentes tipos de implementação
–
Intel x86/Windows, Intel x64/Windows,
–
PowerPC/Mac OS X
8
Camadas de software e hardware em
sistemas distribuídos
Application, Services
Middleware
Operating System
Computer and network hardware
Plataform
(physical
infrastructure)
9
Serviços de sistemas distribuídos
●
●
●
●
Parte de um sistema de computação que
encapsula e gerencia uma coleção de recursos
relacionados
Provê uma interface que permite a aplicações e
usuários terem acesso às funcionalidades dos
recursos
Um serviço pode ser provido por um ou vários
servidores
Ex.: serviço de arquivos, serviço de multimída,
e-mail, etc
10
Aplicação distribuída
●
●
●
É uma aplicação que consiste em 2 ou mais processos que
executam em diferentes processadores que não compartilham
memória
Corolário: os processos de uma aplicação distribuída
comunicam entre si através da troca de mensagens
Ex.: Aplicações de rede tais como FTP, Web(HTTP), sistemas
P2P (BitTorrent), computação em grade, computação em
nuvem.
.
11
Middleware de sistemas distribuídos
●
Camada de software que tem por finalidade
–
mascarar a heterogeneidade da plataforma
subjacente (hardware, SO, linguagem)
–
resolver demais problemas oriundos da distribuição
de forma transparente
–
prover um modelo de programação conveniente
para o programador de aplicações
●
–
ex.: abstrações de alto nível para comunicação remota
Prover serviços de infra-estrutura padronizados
para uso no desenvolvimento de aplicações
●
ex.: resolução de nomes, segurança, transações etc.
12
O que constitui uma plataforma de
middleware
●
●
●
●
Processos, objetos ou componentes localizados nos
computadores do sistema distribuído
Interagem e cooperam entre si para prover o suporte
de comunicação e compartilhamento de recursos
necessário às aplicações
Fornece as primitivas básicas para construção de
componentes de software que funcionam
cooperativamente em um sistema distribuído
Plataforma de alto nível para o desenvolvimento de
aplicações
13
Alguns modelos de programação para
comunicação remota
●
Plataformas de middleware fornecem suporte
para:
–
Chamada de métodos remotos
–
Comunicação de grupo
–
Notificação de eventos
–
Espaços de tuplas
–
Fluxos de mídia
14
Exemplos de middleware
●
CORBA
●
Java RMI e Jini
●
Web services
●
DCOM
●
.Net
●
RM-ODP
●
Outros tipos de middleware?
15
Middleware: Limitações
●
●
Nem todas as decisões sobre questões de distribuição
podem ser embutidas no middleware
Algumas requerem conhecimento específico no nível
das aplicações
–
●
Ex.: tratamento de falhas pode depender da
semântica da aplicação
A implementação destas questões no middleware
pode comprometer a corretude e a confiabilidade
16
Arquitetura de sistemas distribuídos
●
●
Arquitetura: estrutura de um sistema em termos
de componentes especificados separadamente
–
alocação dos componentes na rede
–
inter-relacionamento dos componentes
Principais modelos (ou estilos) de arquitetura:
–
Cliente-servidor (processos ou objetos)
–
Peer-to-peer
17
O modelo cliente-servidor
Client
Server
invocation
result
invocation
result
Server
Client
Key:
Process:
Computer:
18
O modelo cliente-servidor
●
●
●
●
O modelo mais comum
Os processos podem ser divididos em dois tipos, de
acordo com o seu modo de operação
–
Cliente: envia pedido, recebe resposta
–
Servidor: recebe pedido; processa pedido;
envia resposta
Um servidor pode se tornar cliente. Ex.: Mecanismos
de busca, servidor web acessando banco de dados.
Problemas
–
Escalabilidade e tolerância a falhas
19
Variações do modelo cliente-servidor
●
Múltiplos servidores provendo um mesmo
serviço
●
Proxies de serviço
●
Código móvel
●
Clientes leves
●
Dispositivos móveis e configuração espontânea
20
Um mesmo serviço provido por múltiplos
servidores
Service
Server
Client
Server
Client
Server
21
Um mesmo serviço provido por múltiplos
servidores
●
●
●
●
Serviço pode ser implementado por várias máquinas em
diferentes pontos da rede
Servidores podem interagir entre si para oferecer uma
visão global consistente do serviço para os clientes
Particionamento – distribuição física dos recursos entre os
vários servidores
–
Maior facilidade de gerência e maior escalabilidade
–
Ex.: Clusters de servidores
Replicação – manutenção de cópias do mesmo recurso
lógico em dois ou mais servidores
–
Maior desempenho e disponibilidade
–
Ex.: Base de dados do Google, Serviço de nomes da Sun
(NIS/NFS)
22
Servidores de proxy e servidores com
Cache
Web
server
Client
Proxy
server
Client
Web
server
23
Servidores de cache
●
●
Repositório de cópias de objetos recentemente utilizados
que está fisicamente mais próximo do que os objetos
originais
Principais desafios:
–
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)
24
Servidores de Proxy
●
●
Processo compartilhado por vários clientes que serve
como cache para os recursos disponibilizados por outros
servidores remotos
Principais funções:
–
Reduzir o tempo de acesso
–
Aumentar a disponibilidade
–
Também utilizado para proteção, filtragem, adaptação, etc.
25
Código Móvel
a) client request results in the downloading of applet code
Client
Applet code
Web
server
b) client interacts with the applet
Client
Applet
Web
server
26
Código Móvel
●
●
Serviços oferecidos na forma de um código (programa)
específico que deve ser descarregado do servidor
–
Aplicações clientes executam e interagem localmente com o
código móvel recebido
–
Dependendo do serviço, código móvel pode interagir com um
ou mais servidores em nome da aplicação cliente
–
Ex.: Java applets, Tcl scripts
Principais benefí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ções clientes
27
Agentes móveis
●
●
●
Programas (com código e dados) que se descola pela
rede cumprindo tarefas
–
Coletando informações da rede (instalar softwares em uma
rede ou comparar preços em um site)
–
Redução do custo de comunicação e tempo
–
Substitui chamadas remotas por locais
Podem representar um problema de segurança para o
ambiente em que estão ou para si mesmos
Podem não ser muito eficientes por não ter acessos a
recursos sendo melhor utilizar outros meios
28
Clientes leves e servidores de computação
●
●
●
Aplicativos e S.O. armazenados localmente exigem
conhecimento técnico que muitos usuários não possuem
Clientes leves: onde os principais aplicativos são
mantidos em servidores
Processamento de programas, gerenciamento de
arquivos, armazenamentos de dados são feitos
remotamente
29
Clientes leves e servidores de computação
Compute server
Network computer or PC
Thin
Client
network
Application
Process
30
Clientes leves e servidores de computação
●
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 servidores remotos
–
●
●
Ex.: XWindows (Unix/Linux), WinFrame (WindowsNT), VNC
A favor:
–
Baixo custo de hardware e software para os clientes
–
Maior facilidade de gerência e manutenção das aplicações
Contra:
–
Alto custo de hardware e software para os servidores
–
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 altamente interativas
31
Dispositivos móveis e redes espontâneas
Music
service
Alarm
service
gateway
Internet
Hotel wireless
network
Discovery
service
Camera
TV/PC
Laptop
PDA
Guests
devices
32
Dispositivos móveis e redes espontâneas
●
●
●
Formado por aplicações clientes que executam em dispositivos
móveis (PDAs, laptops, celulares, etc) e acessam servidores da rede
fixa através de uma infraestrutura de comunicação sem fio
Principais benefícios:
–
Fácil conexão dos dispositivos a uma nova rede local. Inclusão de
novos clientes sem a necessidade de configuração explícita
–
Fácil integração dos clientes aos serviços locais. 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
33
Download

Aula_02