Sistemas Distribuídos

Propaganda
Sistemas Distribuídos
Aula 01 - Introdução
Prof. Hélio de Sousa Lima Filho
([email protected])
Referencial
Bibliográfico
• Coulouris, George; Dollimore, Jean e
Kindberg, Tim. Sistemas Distribuídos:
conceitos e projeto. (Capítulo 01).
• Tanenbaum, Andrew S., Steen, Maarten
V.. Sistemas Distribuidos: principios e
paradigmas. (Capítulo 01).
Sistemas Distribuídos
2
Sumário
1. Definições
2. Exemplos de Sistemas e Aplicações
Distribuídas
3. Desafios em Sistemas Distribuídos
4. Vantagens/Desvantagens de Sistemas
Distribuídos
Sistemas Distribuídos
3
Sumário
1. Definições
2. Exemplos de Sistemas e Aplicações
Distribuídas
3. Desafios em Sistemas Distribuídos
4. Vantagens/Desvantagens de Sistemas
Distribuídos
Sistemas Distribuídos
4
1945 à1955:
O Início
• Programador tinha que reservar hora para usar
o computador!
Sistemas Distribuídos
5
1955 à1965:
Processamento Batch
• Tarefas eram enfileiradas
• Programas em lotes.
Sistemas Distribuídos
6
1965 à1980:
Timesharing
• Menor tempo da obtenção da resposta de
programas!
Sistemas Distribuídos
7
A partir de 1980
Sistemas Distribuídos
• Comunicação entre
maquinas
• Independência maior
dos usuários
• Compartilhamento de
recursos
Sistemas Distribuídos
8
Sistemas
Distribuídos
• Conceito
– “Um sistema distribuído é aquele no qual os
componentes localizados em computadores
interligados em rede se comunicam e
coordenam suas ações apenas passando
mensagens.“[Coulouris, 2005]
Sistemas Distribuídos
9
Sistemas
Distribuídos
• Conceito
– “Um sistema distribuído é um conjunto de
computadores independentes que se
apresenta a seus usuários como um sistema
unico e coerente.“[Tanenbaum, 2007]
Sistemas Distribuídos
10
Sistemas
Distribuídos
• Conceito
– “Um sistema distribuído são vários
computadores fazendo algo
juntos.“[Mulender, 1993]
– “Você sabe que tem um sistema distribuído
quando a falha de um computador no qual
nunca ouviu falar o impede de fazer qualquer
coisa." :) [Mulender, 1993]
Sistemas Distribuídos
11
Características de
Sistemas Distribuídos
• Conjunto de maquinas autônomas
• Interconectadas por canais de
comunicação
• Comunicação por troca de mensagens
• Ausência de um estado global
• Independência de falhas
• Ausência de sincronização de relógios
• Estado compartilhado da aplicação
Sistemas Distribuídos
12
Sumário
1. Definições
2. Exemplos de Sistemas e Aplicações
Distribuídas
3. Desafios em Sistemas Distribuídos
4. Vantagens/Desvantagens de Sistemas
Distribuídos
Sistemas Distribuídos
13
Unix
Distribuído
• Extensões do modelo unix para suportar:
– Comunicação entre processos
– Servidores na rede (servidor de arquivos,
impressão e etc.)
• Implementações de Unix distribuído:
– SUN OS, SOLARIS
– Linux (Debian, Fedora, Kurumin, Pux)
• Vantagens do Unix distribuído:
– NFS (Network File System)
– NIS (Network Information System)
Sistemas Distribuídos
14
Aplicações
Comerciais
• Sistema de reserva de passagem aéreas
• Sistema de bancos para interconexões
entre agências e terminais
• Sistemas para controle de estoque,
vendas e entrega
Sistemas Distribuídos
15
Aplicações
Comerciais
• Requisitos
– Alto grau de confiabilidade
– Alto grau de segurança e privacidade de
informações
– Suportar concorrência de usuários
– Garantir tempo de resposta satisfatório
– Suportar massiva distribuição
– Suportar extensabilidade
– Suportar integração entre sistemas operados por
diferentes organizações
Sistemas Distribuídos
16
Internet e
Intranet
• Exemplos:
–
–
–
–
Correio eletrônico
Serviço de news
WWW (World Wide Web)
Transferência de arquivos
• Requisitos:
–
–
–
–
Alta extensabilidade
Mecanismo de resolução de nomes
Esquema de roteamento e endereçamento
Controle de acesso e segurança
Sistemas Distribuídos
17
Computação
Móvel e Ubíqua
• Avanços tecnológicos na
miniaturização dos
dispositivos + rede sem fio
– Integração dos dispositivos de
comunicação pequenos e
portáveis aos sistemas
distribuídos
– Usa informações do ambiente
para construir modelos
computacionais dinamicamente
Sistemas Distribuídos
18
Computação
Móvel e Ubíqua
• Computação móvel
– Execução de tarefas enquanto o usuário se
movimenta, e se distancia do seu ambiente
local
Sistemas Distribuídos
19
Computação
Móvel e Ubíqua
• Acesso em qualquer lugar a qualquer
momento
Sistemas Distribuídos
20
Computação
Móvel e Ubíqua
• Computação Pervasiva:
– Computador embarcado no ambiente de
forma despercebida
– Usa informações do ambiente para construir
modelos computacionais dinamicamente
• Computação Ubíqua:
– Computação móvel em larga escala +
Pervasiva
Sistemas Distribuídos
21
Computação
Móvel e Ubíqua
Sistemas Distribuídos
22
Computação
Móvel e Ubíqua
• Requisitos
– Suporte transparente à mobilidade
– Tratamento de contexto
– Otimização de espaço de armazenamento,
largura de banda, uso de energia
– Formatação, compressão, entrega e
apresentação de conteúdo adaptável à
largura de banda e recursos do dispositivo
Sistemas Distribuídos
23
Sumário
1. Definições
2. Exemplos de Sistemas e Aplicações
Distribuídas
3. Desafios em Sistemas Distribuídos
4. Vantagens/Desvantagens de Sistemas
Distribuídos
Sistemas Distribuídos
24
Desafios
em SD´s
•
•
•
•
•
•
•
Heterogeneidade
Abertura
Segurança
Extensabilidade
Manipulação de falhas
Concorrência e Paralelismo
Transparência
Sistemas Distribuídos
25
Desafios
em SD´s
• Diversas Heterogeneidades
– Hardware, Software, Redes, Sistemas
Operacionais, Linguagens, Implementações
de diferentes fabricantes.
• Solução
– Uso de Protocolos e padrões comuns
• Protocolos da Internet (IP)
Sistemas Distribuídos
26
Desafios
em SD´s
• Abertura
– Capacidade de um sistema poder ser estendido
(em relação a hardware e software) e ser
interoperável com outros sistemas
– Abertura resulta da especificação de interfaces,
de tornar as especificações publicas e de
padronizá-las
– Especificações podem vir a serem
• padrões estabelecidos por organizações de
padronização
• padrões estabelecidos pelo uso
Sistemas Distribuídos
27
Desafios
em SD´s
• Abertura
– Padronizações existentes:
• Modelo de referência OSI
• Padronizações de protocolos (RFCs)
– Acrônimo de Request of Comments
– Série evolutiva de relatórios, proposta e padrões de
protocolos que descrevem o funcionamento interno de
protocolos da internet
• Modelo de referência TCP/IP
– Especificações Java
Sistemas Distribuídos
28
Desafios
em SD´s
• Abertura
– Padronizações Suportam:
• Extensabilidade de hardware: adição de novos
computadores ao sistema
• Extensabilidade de software: introdução de novos
serviços ou versão nova de um sistema
• Independência de fabricantes
Sistemas Distribuídos
29
Desafios
em SD´s
• Segurança
– Confidencialidade
• Proteção contra acesso indevido
– Integridade
• Proteção contra alteração ou corrupção
– Disponibilidade
• Proteção contra impedimento de acesso
– Desafios
• Transmissão/Armazenamento seguro de informações
• Impedimento de acesso
Sistemas Distribuídos
30
Desafios
em SD´s
• Paralelismo
– Processos executam simultaneamente em
processadores diferentes
• Concorrência
– Processos executam concorrentemente a um
mesmo processador e acessam recursos
comuns
Sistemas Distribuídos
31
Desafios
em SD´s
• Oportunidade de Concorrência e paralelismo
em um SD:
– Requisições concorrentes para utilização de um
mesmo recurso ou acesso a um mesmo serviço
– Servidores executando em mais de uma máquina
podem juntos fornecer um serviço
– Execução de uma atividade em paralelo pode
executar em mais de uma máquina do SD.
• Interações concorrentes têm que ser
sincronizadas para garantia de consistência
do estado da aplicação
Sistemas Distribuídos
32
Desafios
em SD´s
• Extensabilidade
– Reflete a capacidade de um sistema suportar
aumento da escala sem perda de eficiência
• Desafios:
– Controlar o custo dos recursos físicos
– Controlar perda de desempenho
– Evitar gargalos de desempenho
– Prevenir escassez de elementos de software:
endereços IP´s
Sistemas Distribuídos
33
Desafios
em SD´s
• Técnicas para suportar extensabilidade
– Replicação de recursos
• Dispositivos, dados, serviços
– Caching
• Armazenamento de dados recentes próximo ao uso
– Estruturação dos serviços visando o crescimento
incremental
• Hierárquica (DNS), Balanceamento de carga
– Evitar centralização de algoritmos, dados e
componentes
Sistemas Distribuídos
34
Desafios
em SD´s
• Manipulação de Falhas
– Ocorrência de falhas
• Produzir resultados incorretos
• Causar interrupção de serviços
– Mecanismos devem ser desenvolvidos para
se garantir o correto funcionamento do
sistema, mesmo na ocorrência de falhas
– Recuperação de falhas
– Tolerância a falhas
• Garante a correção e disponibilidade do sistema
Sistemas Distribuídos
35
Desafios
em SD´s
• Transparência
– Abstração de aspectos específicos do
sistema subjacente
– Sistema é visto como um todo e não como
uma coleção de partes
Sistemas Distribuídos
36
Desafios
em SD´s
• Tipos de Transparência
– Acesso
• Usuário não distingue entre o acesso local ou remoto
– Localização
• Não sabe-se onde o recurso encontra-se
– Migração
• Oculta que um recurso pode ser movido para uma
outra localização
– Realocação
• Oculta que um recurso pode ser movido para uma
outra localização enquanto em uso
Sistemas Distribuídos
37
Desafios
em SD´s
• Tipos de Transparência
– Replicação
• Oculta que um recurso e replicado
– Concorrência
• Oculta que um recurso pode ser compartilhado por
diversos usuários concorrentes
– Falha
• Oculta a falha e a recuperação de um recurso
Sistemas Distribuídos
38
Sumário
1. Definições
2. Exemplos de Sistemas e Aplicações
Distribuídas
3. Desafios em Sistemas Distribuídos
4. Vantagens/Desvantagens de Sistemas
Distribuídos
Sistemas Distribuídos
39
Vantagens
dos SD´s
• Pessoas, sistemas, organizações, dados
são inerentemente distribuídos
• Compartilhamento de recursos
• Aumento da confiabilidade
• Aumento do desempenho
• Crescimento incremental
• Flexibilidade
Sistemas Distribuídos
40
Desvantagens
dos SD´s
•
•
•
•
Sincronização
Falhas
Suporte a escalabilidade
Segurança
– Pode afetar a consistência, desempenho,
disponibilidade e etc.
Sistemas Distribuídos
41
Exercícios
• Dê exemplo de aplicações/sistemas para
os seguintes tipos do requisito de
transparência:
– Acesso, localização, migração, realocação,
replicação, concorrência e falha.
Sistemas Distribuídos
42
Download