Escolar Documentos
Profissional Documentos
Cultura Documentos
Computação
Prof. Jesus
Agenda da Apresentação
2
Definição de Sistemas Distribuídos
●
Evolução tecnológica e expansão da utilização e
interligação das redes de computadores
●
Componentes de uma rede podem se comunicar com
maior integração (qualidade de serviço)
●
Emular o comportamento de ambientes centralizados
Principais aspectos dos Sistemas
Distribuídos
– Infra-estrutura para:
● aplicações
● serviços
– Estrutura física
● múltiplos computadores conectados em rede
– Concorrência
– Sem memória compartilhada
● sistema fracamente acoplado
– Sem relógio global
– Falhas isoladas e independentes
– Comunicação através de passagem mensagens
● tipicamente assíncronas
5
Exemplos de Sistemas Distribuídos
● Internet
6
Internet
intranet
ISP
backbone
satellite link
desktop computer:
server:
network link:
Fonte: CDK4
7
Internet
8
Intranet
Local area
Web server network
email server
print
File server
other servers
the rest of
the Internet
router/firewall
Fonte: CDK4
9
Intranet
10
Intranet
11
Intranet
12
Computação móvel e ubíqua
13
Computação Móvel e Ubíqua
14
Motivação
● Compartilhamento de recursos
– Ex.: hardware, software, dados, serviços, etc.
● Elevada disponibilidade de serviço
– Gerenciamento de recursos através de uma interface bem
definida
● Extensibilidade
● Desempenho
● Confiabilidade (redundância, falhas parciais)
● Suporte a organizações distribuídas
15
Principais problemas
● Concorrência
● Falhas parciais
● Localização
● Acesso
● Migração
● Replicação cliente
● Mobilidade
● Contexto
● Segurança
● Larga escala
● Heterogeneidade
16
Heterogeneidade
● Hardware
– PCs, servidores, PDAs, smart phones, smart
cards, utilidades domésticas etc
● Sistemas operacionais
● Linguagens de programação
● Tecnologias de rede
– Internet, WAP, Bluetooth
– Ethernet, WiFi, WiMAX, ...
● Tecnologias de middleware
● Políticas de gerenciamento
17
Exemplo de ambiente heterogêneo
Internet
Mobile
phone
Fonte: CDK4
Printer Laptop
Camera Host site
18
Heterogeneidade
● Middleware
– Camada de software que fornece uma forma de ocultar a
heterogeneidade do sistema. Ex.: RMI, CORBA, etc;
– Fornece também um modelo de programação
independente de plataforma
19
Middleware
20
Abertura
● Facilidade de extensão e atualização
– Adição de novos recursos e serviços
– Re-implementação de serviços existentes
22
Abertura
● Interfaces de sistemas abertos devem ser publicadas
23
Segurança
● Principais técnicas:
– Replicação
– Caching
– Concorrência e paralelismo
25
Tratamento contra falhas
● Falhas são inevitáveis em sistemas computacionais
– Resultados incorretos
– Interrupção não planejada do serviço antes de sua conclusão
27
Concorrência
● Suporte para múltiplos acessos simultâneos a um ou mais
recursos compartilhados
– Possibilidade de inconsistências quando os recursos são alterados
● Serviços que representam recursos compartilhados devem ser
responsáveis por garantir que as operações de acesso os
mantenham em um estado consistente
– Válido para servidores e objetos de aplicações
● Técnicas mais comuns:
– Sincronização de acesso (ex.: exclusão mútua distribuída)
– Protocolos de controle de concorrência (ex.: 2 PCs)
28
Transparências de distribuição
32
Principais transparências de distribuição
● Exemplos de transparência:
– Ferramenta para “exploração” de arquivos que mantêm as
mesmas opções de navegação para pastas locais e
remotas
– API para acessar dados que utiliza as mesmas operações
para dados locais e remotos
● Exemplos de falta de transparência:
– Sistema distribuído onde só é possível acessar arquivos
remotos via FTP
– Serviço de jogos online que precisa ser tirado do ar para
acrescentar ou trocar um servidor
● Classificação quanto à dificuldade de implementação
(hierarquia de dependência) e nível (usuário ou
programador) 33
Principais transparências de distribuição
● Níveis de transparência:
– Nível do usuário: distribuição física dos recursos é
imperceptível para os usuários das aplicações (ex.:
navegador da Web)
– Nível do programador: distribuição física dos recursos é
imperceptível tanto para os usuários quanto para os
programadores das aplicações (ex.: programação com
middleware ou SO distribuído)
34
Consórcio para integração de aplicações
35
Aplicações