Академический Документы
Профессиональный Документы
Культура Документы
Computao Distribuda
INE 5625
Objetivo
Neste curso vamos estudar os conceitos relativos a
computao distribuda, abordando paradigmas tais:
computao obqua;
computao pervasiva;
computao colaborativa;
ambientes de troca de mensagens;
memria compartilhada; e
objetos distribudos.
Objetivo
Vamos iniciar nosso curso com as novas abordagens de
computao distribudas, estas conhecidas como ubqua,
pervasiva e colaborativa.
O objetivo introduzir uma viso inovadora de ambientes
computacionais altamente distribudos, que necessitam de um
tratamento especial por parte de especialistas e, por outro lado,
ser ignorado pelos seus usurios.
Objetivo
Quanto as bibliotecas de troca de mensagem sero estudadas: PVM
(Parallel Virtual Machine) e MPI (Message Passing Interface).
Ambientes de middlewares orientados memria compartilhada
(shared memory), tais como Jiajia e ThreadMark, sero tambm
estudados.
Objetivo
Finalmente, os objetos distribudos sero abordados atravs das
tecnologias CORBA, DCOM e Java RMI
Contedo Programtico
Modulo I
. Introduo a computao distribuda
. Ambientes de middleware
Modulo II
. Paradigma de troca de mensagem
. Parallel Virtual Machine (PVM)
. Message Passing Interface (MPI)
. Ambientes de Memria Compartilhada
Contedo Programtico
Modulo III
. Objetos distribudos
. Componentes
. CORBA
. Barramento de objetos CORBA
. Adaptador bsico de objetos
. Linguagem de definio de interfaces
Contedo Programtico
. Servios CORBA
. Objetos COM
. Barramento de objetos COM
. Servios OLE/COM
Java/RMI
Bibliografia Recomendada
Coulouris, Dollimore e Kindberg, Distributed Systems:
Concepts and Design, ISBN: 0201619180, Addison Weley, 2006
Tanenbaum e van Steen, Distributed Systems: Principles and
Paradigms (2nd Edition), ISBN: 0132392275, Prentice Hall, 2000
Dantas, Computao Distribuda de Alto Desempenho: Redes,
Clusters e Grids C omputacionais, ISBN: 8573232404, Axcel Books
2005.
Contedo Programtico
Modulo I
. Introduo a computao distribuda
. Ambientes de middleware
. Paradigma de troca de mensagem
. Parallel Virtual Machine (PVM)
. Message Passing Interface (MPI)
. Ambientes de Memria Compartilhada
Exemplo tpico
- Jogos Pan-Americanos
- Muitas pessoas/dispositivos entrando com
dados/imagens;
- Sistema computacionais para processar
informaes;
- Disponibilizar um Web Site para entrada e busca
de informao.
Exemplo ilustrado
Leblon
PCs
IRIX 5.3
Silicon Graphics
Ipanema
Windows
Mac
UNIX System V
Sun
World
Eficincia
desenvolvimento da soluo;
tempo de execuo.
Confiabilidade
Transparncia
flexibilidade;
tolerncia falha X alta disponibilidade.
Codificao da Aplicao
fcil utilizao
Computao da Aplicao
precisa;
segura;
eficiente.
Aplicao Web
flexvel;
Poder ser replicada;
eficiente.
Possveis solues
no existe polimorfismo
Possveis solues
Objetos distribudos.
intranet
ISP
backbone
satellite link
desktop computer:
server:
network link:
Fonte: [Coulouris]
Desktop
computers
Web server
Local area
network
email server
File server
print
other servers
the rest of
the Internet
router/firewall
Fonte: [Coulouris]
Internet
Host intranet
WAP
gatew ay
Wireless LAN
Printer
Camera
Mobile
phone
Laptop
Home intranet
Host site
Fonte: [Coulouris]
www.google.com
http://www.google.comlsearch?q=kindberg
Browsers
Web servers
Internet
www.cdk3.net
http://www.cdk3.net/
www.w3c.org
File system of
www.w3c.org
http://www.w3c.org/Protocols/Activity.html
Protocols
Activity.html
Fonte: [Coulouris]
Computadores na Internet
Date
Computers
Web servers
1979, Dec.
188
1989, July
130,000
1999, July
56,218,000
5,560,866
2003, Jan.
171,638,297
35,424,956
Fonte: [Coulouris]
Computers
Web servers
Percentage
1993, July
1,776,000
130
0.008
1995, July
6,642,000
23,500
0.4
1997, July
19,540,000
1,203,096
1999, July
2001, July
56,218,000
125,888,197
6,598,697
31,299,592
12
25
42,298,371
Fonte: [Coulouris]
Fonte: [Dantas]
Fonte: [Dantas]
Tipos de Transparncias
1. Access transparency: enables local and remote resources to
be accessed using identical operations;
2. Location transparency: enables resources to be accessed
without knowledge of their physical or network location (for
example, which building or IP address);
3. Concurrency transparency: enables several processes to
operate concurrently using shared resources without
interference between them;
Fonte: [Coulouris]
Tipos de Transparncias
4. Replication transparency: enables multiple instances of
resources to be used to increase reliability and performance
without knowledge of the replicas by users or application
programmers;
5. Failure transparency: enables the concealment of faults,
allowing users and application programs to complete their tasks
despite the failure of hardware or software components;
Fonte: [Coulouris]
Tipos de Transparncias
6. Mobility transparency: allows the movement of resources and
clients within a system without affecting the operation of users
or programs;
7. Performance transparency: allows the system to be
reconfigured to improve performance as loads vary;
8. Scaling transparency: allows the system and applications to
expand in scale without change to the system structure or the
application algorithms.
Fonte: [Coulouris]
Sistemas Distribudos:
Modelos de Arquitetutras
Modelos de Arquiteturas
Applications, services
Middleware
Operating system
Platform
Computer and network hardware
Fonte:
[Coulouris]
Sistemas Distribudos:
Modelos de Arquitetutras
Clientes invocando servidores individuais
Client
invocation
result
Client
invocation
Server
result
Server
Key:
Process:
Computer:
Sistemas Distribudos:
Modelos de Arquitetutras
Um servio provido por mltiplos servers
Service
Server
Client
Server
Client
Server
Sistemas Distribudos:
Modelos de Arquitetutras
Web proxy server
Web
server
Client
Proxy
server
Client
Web
server
Sistemas Distribudos:
Modelos de Arquitetutras
Uma aplicao distribuda baseada em processos fim
(peer processes)
Application
Application
Coordination
code
Coordination
code
Application
Coordination
code
Sistemas Distribudos:
Modelos de Arquitetutras
Web applets
Client
Applet code
Web
server
Client
Applet
Web
server
Sistemas Distribudos:
Modelos de Arquitetutras
Thin clients e servidores
Sistemas Distribudos:
Modelos de Arquitetutras
Redes Ad hoc (espontnea)
Exemplo de um hotel
Music
service
Alarm
service
gateway
Internet
Hotel wireless
network
Discovery
service
Camera
TV/PC
Laptop
PDA
Guests
devices
Computao Distribuda:
Consiste em executar processos / aplicaes
cooperantes em mquinas diferentes
Tornou-se bastante comum a partir da
popularizao das redes de computadores
Infra-Estrutura Fsica
Mquinas (hosts)
so conectadas a um
provedor (ISP), rede local,
metropolitana ou sem fio;
Estas redes so interligadas
por redes de longa distncia
pblicas (ex.: Internet) ou
privadas
Aplicaes
World Wide Web
Requisio
Resposta
Servidor Web
Requisio
Cliente
Resposta
Servidor Web
Aplicaes
Servidor de e-mail
mail.empresa.com
SMTP
SMTP
Remetente
POP, IMAP,
Webmail,
Destinatrio
Aplicaes
2o Nvel
Aplicaes
k RIPE London
i NORDUnet Stockholm
m WIDE Tokyo
e NASA Mt View, CA
f Internet Software C. Palo Alto, CA
Aplicaes
DNS
Consulta:
Servidor de
nomes raiz
3
2
9
Servidor de
nomes .br
4
Serv. de nomes
ns.empresa.com
1
Serv. de nomes
ns.ufsc.br
10
5
6
11
mquina.empresa.com
venus.inf.ufsc.br
Serv. de nomes
ns.inf.ufsc.br
Aplicaes
Messenger, ICQ;
Aplicaes
Sistemas bancrios;
Sistemas de gerenciamento de redes de
telecomunicaes, transmisso de energia;
Sistemas de informao de grandes empresas;
Caractersticas
Classificao:
Sistemas Homogneos
Sistemas Heterogneos
Caractersticas
Vantagens
Caractersticas
Vantagens
Caractersticas
Dificuldades
Caractersticas
Dificuldades
Caractersticas
Desempenho
Caractersticas
Caractersticas
Uso da Rede
Caractersticas
No-deterministas
Caractersticas
Influncia do Tempo
Caractersticas
Controle
Caractersticas
Sujeito a Falhas
Segurana
Caractersticas
Caractersticas
Caractersticas
Replicao de Dados
Caractersticas
Replicao de Dados
Desenvolvimento de Aplicaes
Desenvolvimento de Aplicaes
Desenvolvimento de Aplicaes
Mquina N
Aplicao
Aplicao
Aplicao
Servio
Servio
Aplicao
...
Sistema Operacional
Hardware
...
Hardware
Desenvolvimento de Aplicaes
Servidores de Aplicao
Mquina Cliente
Mquina Servidora
Aplicao
Cliente
Servio
Aplicao
Servidor de Aplicao
Sistema Operacional
...
Sistema Operacional
Hardware
...
Hardware
Desenvolvimento de Aplicaes
Abordagens de projeto
Desenvolvimento de Aplicaes
Fonte:[Mark Weiser]
Tolerncia Faltas
Conceitos
Tipos de Faltas
Replicao
Deteco de Falhas
Recuperao de Falhas
86
Conceitos
87
Conceitos
88
Conceitos
Estados de um Sistema:
Sistema prprio: servio fornecido pelo sistema como foi
especificado
Sistema interrompido ou imprprio: servio no fornecido
conforme especificado
Sistema
Prprio
Falha benigna
Falha catastrfica
Restaurao
Sistema
Imprprio
Sistema
Interrompido
Falha catastrfica
Conceitos
90
Conceitos
91
Conceitos
92
Conceitos
93
Conceitos
94
Conceitos
90%
99%
99.9%
99.99%
99.999%
99.9999%
~ 1 ms
~ 4 dias
~ 9 horas
~ 1 hora
~ 5 minutos
~ 30 segundos
95
Conceitos
Conceitos
97
Conceito
Exemplo: HD
Um setor do disco
pode estar com defeito (falta)
Um erro de leitura pode ocorrer se um programa
tentar ler ou escrever neste setor
Pode ocorrer uma falha em um sistema que
tente acessar este setor e no consiga
Se os dados gravados neste setor estiverem
replicados em outro local, o sistema pode tolerar
a falta e no apresentar falha
98
Conceitos
Falhas em Cascata
Sistema
Componente
Componente
Falta
Falha
Erro
Falta
Falha
Erro
Falta
Erro
Falha
99
Conceitos
Falhas em Cascata
A falha de um componente pode ocasionar a falha de outro
que necessita dos servios do primeiro, e assim
sucessivamente, podendo levar o sistema como um todo a
falhar
Exemplo:
Uma falta no disco pode causar uma falha no
sistema de arquivos
Os servidores Web e de e-mail, que usam o sist. de
arquivos, podem falhar
Uma aplicao de comrcio eletrnico baseada na
Web pode tambm falhar
100
Conceitos
Previso de Faltas
Estima a probabilidade de que faltas ocorram
Permite que se avalie os riscos de falha
Remoo de Faltas
Consiste em detectar e remover as faltas antes que causem
erros e falhas
Usar ferramentas como debugger, scandisk, ...
Preveno de Faltas
Elimina as condies que fazem com que faltas ocorram
durante a operao do sistema
Usa replicao interna, tcnicas de validao, ...
101
Conceitos
Tolerncia a Faltas
Sistema
Componente
Componente
Falta
Falha
Erro
Falta
Falha
Erro
Uma barreira
impede que a
falha se propague
102
Conceitos
Tolerncia a Faltas
Propriedade de sistemas que no falham necessariamente
ao se deparar com uma falta
Sistemas Tolerantes a Faltas
So sistemas capazes de tolerar faltas encontradas durante
a sua execuo
Tcnicas de Tolerncia a Faltas
Permitem prevenir falhas contornando as faltas que os
sistemas podem vir a apresentar
103
Tipos de Faltas
104
Tipos de Faltas
105
Tipos de Faltas
106
Tipos de Faltas
107
Replicao
108
Replicao
109
Replicao
110
Replicao
Tcnicas de Replicao
Definem como as rplicas se comportaro durante o
funcionamento normal do sistema e sob a presena de
faltas
Principais Tcnicas de Replicao
Replicao Passiva (Primrio-Backup)
Replicao Ativa
Replicao Semi-Ativa (Lder-Seguidores)
Replicao Preguiosa (Lazy )
111
Replicao
112
Replicao
1.Requisio
Cliente
2.Executa
Primrio
Mquina 1
4. Resposta
3. Estado
Backup
Mquina 2
113
Replicao
114
Replicao
115
Replicao
116
Replicao
3.Resposta
2.Executa
Primrio
Cliente
1.Requisio
Backup
2.Registra
log
Mquina 1
Mquina 2
117
Replicao
Primrio
Mquina 1
1.Transfere
Estado
Backup
2.Limpa
Log
log
Mquina 2
118
Replicao
119
Replicao
Replicao Ativa
Um grupo de rplicas de um componente recebe uma
requisio de um cliente
Todas as rplicas processam a requisio
concorrentemente e enviam as suas respostas ao cliente
No preciso sincronizar o estado das rplicas, pois todas
executam os mesmos procedimentos
120
Replicao
Replicao Ativa
Cliente
Rplica 1
1.Requisio
Rplica 2
2. Resposta
Mquina 1
Mquina 2
121
Replicao
Replicao Ativa
O cliente precisa de apenas uma resposta
A resposta vlida para o cliente pode ser:
A mais freqente (votao)
A primeira recebida
Uma mdia
etc.
Com isso, a replicao ativa pode tolerar faltas de valor por
meio de votao
Em 2N+1 rplicas podemos ter N respostas erradas
sem ocasionar falha do sistema
122
Replicao
Replicao Ativa
Consideraes:
Alto custo para execuo das rplicas ativas
As requisies devem ser entregues na mesma ordem
para todas as rplicas usar protocolo de difuso
atmica
Ordenao de mensagens tem custo alto
Recuperao mais rpida que na replicao passiva,
pois caso uma rplica falhe, as demais continuam
funcionando normalmente
123
Replicao
124
Replicao
4. Resposta
3.Executa
Lder
Cliente
1.Requisio
3.Executa
Seguidor
2.Define
Ordem
Mquina 1
Mquina 2
125
Replicao
126
Replicao
127
Replicao
Cliente
3.Resposta
5.Executa
Rplica 2
4.Requisio
Mquina 1
Mquina 2
128
Replicao
129
Replicao
Deteco de Falhas
131
Deteco de Falhas
132
Deteco de Falhas
133
Deteco de Falhas
Diagnstico do Sistema
Componentes faltosos podem reportar erroneamente o
estado dos seus pares
Em um sistema com f componentes faltosos, cada
componente deve ser testado por pelo menos f outros, e
precisamos de n 2f +1 elementos para detectar
corretamente a falta
Para diagnosticar falhas de componentes do sistema, um
elemento deve coletar e analisar os dados obtidos dos
demais componentes
134
Deteco de Falhas
Detector de Falhas
Servio ou mdulo que verifica a ocorrncia de falhas em
componentes do sistema
Implantado junto ao componente
Executa um algoritmo de deteco de falhas
Interage com detectores de outros componentes do
sistema
O componente pode requisitar ao seu detector informaes
sobre o estado de outros componentes do sistema
135
Deteco de Falhas
136
Deteco de Falhas
137
Recuperao de Falhas
Recuperao de Erros
Ao perceber um erro, o componente pode tentar recuperarse automaticamente
Recuperao de erro por retrocesso (backward error
recovery): componente volta a um estado anterior ao erro e
continua ativo
Exemplos: reinicia a execuo de um mtodo,
retransmite pacotes perdidos, etc.
Operaes posteriores ao instante de retrocesso so
perdidas, mas seu efeito pode ainda ser sentido no
sistema, levando possivelmente a inconsistncias
138
Recuperao de Falhas
139
Recuperao de Falhas
Recuperao de Falhas
Se ocorrer a falha de um componente, um sistema
tolerante a faltas deve mascar-la usando as rplicas
disponveis
Na replicao passiva, substituir o primrio por um backup
e criar um novo backup
Na replicao semi-ativa, substituir o lder por um de seus
seguidores e criar um seguidor
Nas replicaes ativa e lazy, criar uma nova rplica para
manter a capacidade do sistema de tolerar faltas (ou falhas
de componentes)
140