Post on 31-Dec-2020
Sistemas DistribuídosSistemas Distribuídos
ComputaçãoComputação
Aula 01-02: IntroduçãoAula 01-02: Introdução
2o. Semestre / 2014
Prof. Jesus
2
Agenda da ApresentaçãoAgenda 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
Definição de Sistemas DistribuídosDefiniçã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ídosSurgimento 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
5
Principais aspectos dos Sistemas Principais aspectos dos Sistemas DistribuídosDistribuí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
6
Exemplos de Sistemas DistribuídosExemplos de Sistemas Distribuídos
● Internet
● Intranet (uma rede dentro da Internet gerenciada por alguma organização)
● Computação móvel e ubíqua.
7
InternetInternet
intranet
ISP
desktop computer:
backbone
satellite link
server:
network link:
Fonte: CDK4
8
InternetInternet
● Programas interagem através de mensagens
● Pode ser ampliado com novos servidores ou tipos de serviços
● Possui backbonesbackbones que são redes com alta capacidade de transmissão
9
IntranetIntranet
the rest of
email server
Web server
Desktopcomputers
File server
router/firewall
print and other servers
other servers
Local areanetwork
email server
the Internet
Fonte: CDK4
10
IntranetIntranet
● 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
11
IntranetIntranet
● 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
12
IntranetIntranet
● 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.
13
Computação móvel e ubíquaComputaçã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.
14
Computação Móvel e UbíquaComputação Móvel e Ubíqua
15
MotivaçãoMotivaçã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
16
Principais problemasPrincipais problemas
● Concorrência● Falhas parciais● Localização● Acesso● Migração● Replicação● Mobilidade● Contexto● Segurança● Larga escala● Heterogeneidade
cliente
17
HeterogeneidadeHeterogeneidade
● 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
18
Exemplo de ambiente heterogêneoExemplo de ambiente heterogêneo
Laptop
Mobile
PrinterCamera
Internet
Host intranet Home intranetWAP
Wireless LAN
phone
gateway
Host site
Fonte: CDK4
19
Heterogeneidade 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)
20
MiddlewareMiddleware
21
AberturaAbertura
● 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
22
AberturaAbertura
● 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
23
AberturaAbertura
● 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
24
SegurançaSeguranç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
25
EscalabilidadeEscalabilidade
● 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
26
Tratamento contra falhasTratamento 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
27
Tratamento contra falhasTratamento 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)
28
ConcorrênciaConcorrê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)
29
Transparências de distribuiçãoTransparê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
30
Principais transparências de distribuiçãoPrincipais 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
Baseado em: CDK4
31
Principais transparências de distribuiçãoPrincipais 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
32
Principais transparências de distribuiçãoPrincipais 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
33
Principais transparências de distribuiçãoPrincipais 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)
34
Principais transparências de distribuiçãoPrincipais 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)
35
Consórcio para integração de aplicaçõesConsó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
36
AplicaçõesAplicaçõ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