Você está na página 1de 36

Sistemas Distribuídos

Computação

Aula 01-02: Introdução

2o. Semestre / 2014

Prof. Jesus
Agenda da Apresentação

● Definição e surgimento de Sistemas


Distribuídos
● Principais aspectos de Sistemas Distribuídos
(Exemplos)
● Motivação e principais problemas
● Transparência de distribuição
● Aplicações

2
Definição de Sistemas Distribuídos

● “Um sistema distribuído (SD) é um conjunto de computadores


independentes que se apresenta a seus usuários como um
sistema único e coerente” (Tanenbaum)

● “Um sistema em que componentes de hardware e software


localizados em uma rede se comunicam e
coordenam suas ações por passagem de mensagens”
(Coulouris et al.)
Surgimento dos 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

● Intranet (uma rede dentro da Internet


gerenciada por alguma organização)

● Computação móvel e ubíqua.

6
Internet

intranet 

 ISP

backbone

satellite link

desktop computer:
server:
network link:

Fonte: CDK4
7
Internet

● Programas interagem através de mensagens

● Pode ser ampliado com novos servidores ou


tipos de serviços

● Possui backbones que são redes com alta


capacidade de transmissão

8
Intranet

email server Desktop


computers
print and other servers

Local area
Web server network

email server
print
File server
other servers

the rest of
the Internet
router/firewall
Fonte: CDK4
9
Intranet

● Porção da Internet administrada separadamente por


uma organização e com políticas de segurança locais

● Pode ser composta por uma ou mais LANs

● Uma intranet geralmente é conectada à Internet


através de um roteador

10
Intranet

● Usuários (de outras intranets) acessar seus serviços

● Estas intranets precisam possuir políticas de


segurança

● Proteger informações confidenciais

● Usam firewall para filtrar a entrada e saída de


informações

11
Intranet

● Firewall podem impedir acessos legítimos

● Devem ser complementados com mecanismos de


segurança mais refinados

● Existem casos em que as organizações não desejam


que suas intranets não se conectem à Internet
– Organizações militares em época de guerra, agências de
segurança, etc.

12
Computação móvel e ubíqua

● Móvel: dispositivos (smartphones, laptops, GPS) que


utilizam conexões de rede sem fio que permite ao usuário
acesso a serviços independente de sua localização física

● Ubíqua: existe sem a percepção da existência dela pois o


computador está integrado ao ambiente. Ex.: sensores,
eletrodomésticos inteligentes.

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

Host intranet WAP


Wireless LAN Home intranet
gateway

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

● Código móvel e máquina virtual


– O primeiro se refere a um código enviado para outro
computador e executado no seu destino. Ex.: Java
applets.
– O segundo permite a execução de um código em
diferentes tipos de hardware e/ou sistemas
operacionais. Ex.: JVM (Máquina Virtual Java)

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

• Determina quanto o sistema pode ser estendido


– Extensão de hardware
• Adição de memória, periféricos...
– Extensão de software
• Recursos de software, protocolos, serviços...

• Grau de não interferência quando da inclusão de algo novo


21
Abertura
● Depende de que as interfaces de acesso aos principais
componentes do sistemas sejam conhecidas e estejam
disponíveis para os programadores

● Exemplos de abertura na Internet


– Especificações controladas e atualizadas por um Comitê
Gestor
– Novos produtos e serviços implementados de acordo com as
especificações vigentes
– Conformidade da implementação deve ser testada e
verificada para garantir o correto funcionamento do sistema

22
Abertura
● Interfaces de sistemas abertos devem ser publicadas

● Devem fornecer um mecanismo de comunicação uniforme


para compartilhamento de recursos

● Devem oferecer suporte a diferentes tipos de hardware e


software mesmo que sejam de diferentes fornecedores

23
Segurança

● Proteção para recursos compartilhados


– Confidencialidade (proteção contra usuários não autorizados) Ex.: Acesso a
dados sobre salário, histórico médico, endreço
– Integridade (proteção contra alteração e corrupção) Ex.: Alteração indevida de
dados usados em transações bancárias
– Disponibilidade (proteção contra interferência ao meio de acesso) Ex.: Queda
ou sobrecarga do servidor ou do meio de comunicação
● Principais mecanismos de segurança na Internet
– Firewall
– Assinaturas digitais
– Canais de seguros de comunicação
● Desafios
– Ataques de negação de serviço
– Segurança para código móvel
24
Escalabilidade

● Capacidade do sistema permanecer operando de forma


efetiva mesmo diante de um aumento significativo do número
de usuários e/ou dos recursos disponíveis
● Principais desafios:
– Controlar o custo dos recursos físicos
– Controlar perdas de desempenho
– Prevenir o esgotamento dos recursos de software
– Evitar “gargalos” de desempenho na rede ou nos próprios servidores

● 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

● Falhas em sistemas distribuídos são parciais

● Algumas falhas podem ser detectadas (usando checksums em


arquivos) e outras não (falha em um servidor)

● Sistemas distribuídos devem oferecer alta disponibilidade de


recursos mesmo diante da ocorrência de falhas
– Disponibilidade: medida da proporção do tempo que um recurso está
disponível para uso
26
Tratamento contra falhas

● Técnicas de tratamento de falhas mais comuns:


– Detecção (ex. bits de paridade, checksums)
– Ocultamento (ex. retransmissão de mensagens)
– Tolerância (ex. informar o usuário do problema)
– Recuperação (ex. transações em BD’s)
– Redundância (ex. replicação de tabelas no DNS)

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

● Um SD deve se apresentar a usuários e aplicações


como um sistema único (TRANSPARENTE)
● Tornar invisíveis as complicações geradas pela
distribuição:
– para o programador de aplicações distribuídas
– para o usuário
– para o administrador do sistema
● Principais tipos de transparência
– acesso, localização, falha, migração, relocação,
replicação, persistência, transação, concorrência
29
Principais transparências de distribuição

● Transparência de acesso: permite o acesso a componentes remotos


e locais através das mesmas operações

● Transparência de localização: permite o acesso a componentes sem


conhecimento da sua localização física

● Transparência de concorrência: permite a execução concorrente de


múltipla operações sobre o mesmo conjunto de recursos sem causar
interferência entre elas

● Transparência de replicação: permite usar múltiplas instâncias de um


mesmo recurso lógico sem conhecimento da existência de réplicas
pelos usuários e programadores
30
Baseado em: CDK4
Principais transparências de distribuição

● Transparência de falha: permite esconder a ocorrência de falhas


dos usuários e programadores

● Transparência de mobilidade (migração): permite a realocação de


recursos e aplicações sem afetar o seu uso

● Transparência de desempenho: permite a re-configuração do


sistema para aumentar o seu desempenho conforme varia a carga de
trabalho

● Transparência de escala: permite a expansão do sistema e de suas


aplicações sem exigir mudanças significativas na infra-estrutura
existente
31
Principais transparências de distribuição

● As duas formas mais importantes são acesso e


localização.
– Suas presenças (ou ausências) afetam profundamente a
maneira como os recursos são utilizados em um sistema
distribuído
– Também conhecidas como transparência de rede

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

• Consórcio que reúne cerca de 800 empresas envolvidas com


tecnologia de objetos
–fabricantes de middleware e aplicações
–instituições de pesquisa
–usuários
• Missão
–“Criar um mercado de software baseado em componentes”
• Ênfase:
–Re-uso de componentes
–Interoperabilidade e portabilidade de componentes
–Desenvolvimento de componentes padronizados

35
Aplicações

● Em princípio, qualquer aplicação


convencional pode ser portada com sucesso
para um ambiente de sistema distribuído
● Algumas áreas de aplicação emergentes
– multimídia distribuída
– espaços ativos
– disseminação de informações
– computação móvel e ubíqua
– computação em grade
– redes de sensores 36

Você também pode gostar