Buscar

[aula 01][introducao]

Prévia do material em texto

Victor Medeiros
victor.wanderley@ufrpe.br
Projeto de Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
Victor MedeirosProjeto de Sistemas Distribuídos
História
• 1945 até 1985: 
• Computadores corporativos grandes, caros e monolíticos 
(mainframes) 
• Sistemas Centralizados 
• Processador e memória compartilhados 
• Usuários através de “terminais burros” 
• Grande porte físico. Limitações de acomodação 
• Sistemas operacionais únicos: dependência de fabricante
2
Victor MedeirosProjeto de Sistemas Distribuídos
História
• Meados da década de 80 
• Surgimento das redes locais de computadores 
• Barateamento de processadores 
• Popularização do computador pessoal
3
Victor MedeirosProjeto de Sistemas Distribuídos
História
• Dias atuais: 
• Diversos portes de computadores 
• Diversos sistemas operacionais 
• Diversas tecnologias de comunicação 
• Novas aplicações: 
• Internet, comércio eletrônico, computação móvel, 
computação ubíqua/pervasiva, multimídia digital/ 
TV interativa
4
Victor MedeirosProjeto de Sistemas Distribuídos
História
• Novo paradigma para implementação de 
Sistemas Computacionais: 
• Comunicação, Troca de Informações, 
Interoperabilidade, Redução de Custos 
• Sistemas passam a distribuir processamento e 
controle de informações entre vários nós de 
comunicação
5
Victor MedeirosProjeto de Sistemas Distribuídos
Conceitos
• “... um sistema no qual componentes 
localizados em computadores em rede se 
comunicam e coordenam suas ações somente 
por passagem de mensagem.”



Coulouris et al
6
Victor MedeirosProjeto de Sistemas Distribuídos
Conceitos
• “É um sistema que lhe impede obter qualquer 
serviço quando uma máquina que você nem 
imagina que exista falhe.”



Lamport
7
Visão pessimista
Victor MedeirosProjeto de Sistemas Distribuídos
Conceitos
• “Uma coleção de elementos de processamento 
interconectados, tanto logicamente como 
fisicamente, para execução cooperativa de 
programas de aplicação com o controle geral 
dos recursos centralizados.”



M. Eckhouse
8
Victor MedeirosProjeto de Sistemas Distribuídos
Conceitos
• “Coleção de computadores autônomos que 
aparecem para os usuários do sistema como um 
único computador.”



Tanenbaum & van Steen
9
Victor MedeirosProjeto de Sistemas Distribuídos
Um típico SD
10
Fonte: Tanembaum, A., Introduction to Distributed Systems
Victor MedeirosProjeto de Sistemas Distribuídos
Visão Lógica
11
• Sistemas distribuídos são: 
• coleção de processos/objetos 
cooperando 
• distribuição de estado (dados) + 
distribuição de comportamento (código) 
• a semântica (?) da aplicação é dada 
pela cooperação dos processos 
• os processos não precisam estar 
necessariamente em máquinas 
distintas 
• ausência de um estado global
Victor MedeirosProjeto de Sistemas Distribuídos
Vantagens
• Redução de custos 
• Microprocessadores X Mainframes 
• Performance absoluta 
• Impossível construir um Mainframe com a mesma capacidade 
de processamento 
• Compartilhamento de Recursos 
• Dispositivos e Dados 
• Tolerância a falhas 
• Replicação de dados e hardware
12
Victor MedeirosProjeto de Sistemas Distribuídos
Vantagens
• Escalabilidade 
• Idealmente, sistemas distribuídos não devem ter 
qualquer componente centralizado (cuja capacidade 
impõe limites para o tamanho máximo de um sistema), 
tal que a restrição ao crescimento não deve existir 
• Flexibilidade (Interoperabilidade) 
• Mistura de computadores pessoais e compartilhados 
• Distribuição das tarefas/aplicações entre as máquinas
13
Victor MedeirosProjeto de Sistemas Distribuídos
Desvantagens
• Interconexão 
• Um grande número de problemas de sistemas acontece quando 
componentes que antes operavam independentemente são 
interconectados 
• Interferência 
• Dois componentes de um sistema, cada um com comportamento 
razoável quando observados em isolamento, podem exibir 
comportamento indesejável quando combinados 
• Propagação de efeito 
• “efeito cascata” de falhas pode derrubar um sistema inteiro se não 
houver cuidados no projeto
14
Victor MedeirosProjeto de Sistemas Distribuídos
Desvantagens
• Efeitos de escala 
• Um sistema que funciona bem com 10 nós pode falhar se 
crescer para centenas de nós 
• Heterogeneidade 
• Uma maior distribuição geográfica (física) aumenta a 
variedade de sistemas em comunicação 
• Pontos de Falha 
• Mais componentes, maior distribuição geográfica, mais 
problemas de segurança
15
Victor MedeirosProjeto de Sistemas Distribuídos
Exemplos de SD: Internet
• Porção típica da Internet:
16
ISP!
desktop computer:!
backbone!
satellite link!
server:!
☎"
network link:!
☎"
☎"
☎"
intranet!
Victor MedeirosProjeto de Sistemas Distribuídos
Exemplos de SD: Intranets
• A Intranet pode ser considerada uma pequena porção da Internet, 
gerenciada ou administrada separadamente por uma organização 
ou companhia que apresentam requisitos focados em políticas de 
segurança normalmente rígidas. 
• Uma Intranet pode ser conectada a Internet através de roteadores, 
para permitir que seus usuários possam acessar alguns de seus 
serviços, como acesso a páginas da web e emails. É possível 
também que usuários externos acessem o conteúdo interno da 
Intranet conforme o interesse da compania que o gerencia. 
• O controle de acesso aos serviços é normalmente realizado pelos 
firewalls, cuja a função principal é filtrar tipos de dados que entram 
e saem conforme o interesse da organização. 
17
Victor MedeirosProjeto de Sistemas Distribuídos
Exemplos de SD: Intranets
• As principais características para um projeto de 
componentes para o uso de Intranets em 
sistemas distribuídos são: 
• Serviços de Troca de Arquivos; 
• Firewalls; 
• Custo de instalação e Suporte de Software. 
18
Victor MedeirosProjeto de Sistemas Distribuídos
Exemplos de SD: Computação móvel
• Avanços na tecnologia permitiram a redução do hardware dos dispositivos e 
melhoramento nas técnicas de transmissão de dados sem fios. Um dos 
resultados mais evidentes é o aparecimento de poderosos dispositivos 
computacionais móveis: 
• Laptops; 
• Handheld, PDA’s; 
• Smartphones; 
• Dispositivos Vestíveis (Wearable); 
• Dispositivos Embarcados. 
• Características principais: 
• Portabilidade 
• Conectividade
19
Victor MedeirosProjeto de Sistemas Distribuídos
Ubiquidade/Pervasividade
• Ubiquitous Computing, 
• ... (Weiser 1993) são recursos computacionais que ficam disponíveis no 
próprio ambiente. São dispositivos pequenos e baratos incorporados 
nos objetos do dia a dia do lar ou escritório de trabalho. 
• Weiser(1999) 
• Criou o conceito de computação omnipresente ou computação 
presente em “qualquer lugar”. Neste novo cenário, um usuário pode, 
por exemplo, para conversar diretamente com a máquina de lavar, 
para pedir para ligar o aparelho de som. Ao mesmo tempo, estes 
mesmo dispositivos podem enviar mensagem para seus donos 
através de emails ou smartphones para avisar sobre algum evento. 
• Seu experimento mais conhecido é o active badge
20
Victor MedeirosProjeto de Sistemas Distribuídos
Desafios
• Computação móvel: 
• Limitação da bateria; 
• Limitação da largura de banda; 
• Interfaces limitadas; 
• Computação Ubíqua: 
• Reconfiguração de acesso; 
• Complexidade na implementação; 
• Privacidade e segurança.
21
Victor MedeirosProjeto de Sistemas Distribuídos
Caracterização de Sistemas Distribuídos
• Exemplos de aplicações: 
• Casa; 
• Trabalho; 
• Hospitais; 
• Bibliotecas; 
• etc;
22
Laptop
Mobile
Printer
Camera
Internet
Host intranet Home intranetWAP Wireless LANphone
gateway
Host site
Victor MedeirosProjeto de Sistemas Distribuídos
Características Chaves/Desafios
• Compartilhamento de Recursos 
• Abertura/Flexibilidade 
• Concorrência 
• Escalabilidade 
• Tolerância a Falhas 
• Transparência


Não são conseqüências automáticas da distribuição; software de 
suporte e aplicação devem ser bem planejados para garanti-las.
23
Victor MedeirosProjeto de Sistemas Distribuídos
Compartilhamento de Recursos
• “Recurso” é um termo abstrato 
• Dispositivo físico 
• Discos, Impressora, CDROM 
• Dispositivo lógico 
• Um arquivo, um SGBD 
• Benefícios: 
• Redução de custos 
• Essencial para certas aplicações 
• Trabalho colaborativo
24
Victor MedeirosProjeto de Sistemas Distribuídos
Compartilhamento de Recursos
• Um SD necessita um controle sobre recursos 
compartilhados 
• Gerenciadores de Recursos 
• Esquemas de nomeação 
• Coordenação de acesso concorrente 
• Sincronização
25
Victor MedeirosProjeto de Sistemas Distribuídos
Compartilhamento de Recursos
26
Victor MedeirosProjeto de Sistemas Distribuídos
Abertura/Acessibilidade
27
• A acessibilidade de um sistema de computador é a 
característica que determina se um sistema pode 
ser estendido e reimplementado de outras formas. 
• Determina o grau para o qual um novo recurso 
compartilhado pode ser adicionado e 
disponibilizado para uso em uma variedade de 
programas clientes.
Victor MedeirosProjeto de Sistemas Distribuídos
Abertura/Acessibilidade
28
• A acessibilidade só é possível se a especificação e 
a documentação relativa as interfaces de software 
do componente de sistema ficarem disponíveis 
para os desenvolvedores. Em outras palavras, as 
interfaces chaves devem se tornar públicas; 
• A publicação é somente um primeiro passo 
necessário para permitir a adição e extensão dos 
serviços em Sistemas Distribuídos.
Victor MedeirosProjeto de Sistemas Distribuídos
Abertura/Acessibilidade
29
• Exemplo de publicação: 
• A Internet, para poder oferecer um padrão uniforme de 
serviço de rede para os desenvolvedores, oferece uma 
série de documentos específicos que são chamados de 
RFCs – Requests For Comments, os quais são 
identificados por números. Este conjunto de documentos 
especificam entre outras coisas, como os aplicativos 
deverão utilizar o protocolo de Internet para utilizar os 
seus serviços [www.ietf.org]. 
• UNIX
Victor MedeirosProjeto de Sistemas Distribuídos
Abertura/Acessibilidade
30
• Sistemas Distribuídos Abertos 
• Sistemas heterogêneos compostos por diferentes 
máquinas, sistemas operacionais, comunicando-
se através de protocolos públicos
Victor MedeirosProjeto de Sistemas Distribuídos
Abertura/Acessibilidade
31
• Os sistemas abertos são caracterizados pelo fato de terem 
suas interfaces chaves públicas 
• Os sistemas distribuídos abertos são baseados na provisão de 
um mecanismo uniforme de comunicação e de uma publicação 
de interface para acesso aos recursos compartilhados 
• Sistemas distribuídos abertos podem ser construídos a partir 
de hardware e software heterogêneos. Mas os componentes e 
as técnicas necessárias para permitir a conformidade entre os 
diversos hardwares e softwares devem ser cuidadosamente 
testados
Victor MedeirosProjeto de Sistemas Distribuídos
Concorrência
32
• Os serviços e as aplicações providenciam recursos 
que podem ser compartilhados pelos clientes nos SDs. 
Isto pode ser um problema se um determinado recurso 
for requisitado ao mesmo tempo por vários usuários. 
• Muitos desses desafios estão relacionados quando um 
determinado recurso deve ser compartilhado 
concorrentemente para oferecer melhor desempenho 
no sistema. 
• Exemplo: acesso a BD, páginas de Internet etc.
Victor MedeirosProjeto de Sistemas Distribuídos
Concorrência
33
• O principal problema é a ocorrência de conflitos que 
podem gerar inconsistências em ambientes 
concorrentes. 
• Um exemplo é a ação de armazenamento de dados. 
Uma primeira ação pode pedir ao BD para armazenar 
“Smith R$ 1200,00”, e logo em seguida, um outro 
processo pode solicitar para o mesmo banco de dados 
gravar “Jones R$ 5000,00”. Neste exemplo, o processo 
de concorrência do SGBD poderá intercalar o acesso ao 
BD, misturando as informações
Victor MedeirosProjeto de Sistemas Distribuídos
Escalabilidade
34
• Todo SD deve operar efetivamente e eficientemente 
em várias e diferentes ESCALAS. 
• Um sistema é dito escalável se ele permanecer 
efetivo e íntegro enquanto há um aumento 
significativo de recursos e de usuários
Victor MedeirosProjeto de Sistemas Distribuídos
Escalabilidade
35
• Software de sistema e aplicação não precisam 
mudar quando a escala do sistema aumenta. 
• O processamento deve ser independente do 
tamanho da rede 
• Filosofia de projeto 
• Se a demanda por um recurso aumentar, deve ser 
possível estender o sistema para atender à 
mesma.
Victor MedeirosProjeto de Sistemas Distribuídos
Escalabilidade
36
• O exemplo da Internet:
Date Computers Web servers 
1979, Dec. 188 0 
1989, July 130,000 0 
1999, July 56,218,000 5,560,866 
Victor MedeirosProjeto de Sistemas Distribuídos
Desafios de escalabilidade
37
• Controle de Custo de Recursos Físicos 
• Um SD deve ter a possibilidade de crescer sem aumentar os 
custos significativamente. Em geral, um SD deve ter um 
crescimento na ordem de O(n). 
• Servidores Web; 
• Controle de Perda de Desempenho 
• Um sistema que mantém dados que pode crescer 
proporcionalmente a “n” usuários, não deve ter perda de 
desempenho pior que O(log(n)). 
• Estrutura de dados hierárquico é melhor que a linear;
Victor MedeirosProjeto de Sistemas Distribuídos
Desafios de escalabilidade
38
• Perda de Escalabilidade por Software 
• Um projeto mal feito pode limitar a escalabilidade de um SD 
• IPv4. 
• Evitando Gargalos de Desempenho 
• Em um projeto de SD, os algoritmos devem descentralizar 
o acesso aos recursos para evitar gargalos 
• Páginas de Internet que são muito acessadas podem ter 
seus dados duplicados em mais servidores para evitar 
os gargalos.
Victor MedeirosProjeto de Sistemas Distribuídos
Técnicas para prover 
escalabilidade
39
• Caching 
• Replicação 
• Clustering 
• Computação em Grade
Pesquisar sobre cada uma das técnicas.

Trazer na próxima aula.
Victor MedeirosProjeto de Sistemas Distribuídos
Tolerância a falhas
40
• Em SD, quando uma falha acontece, somente aquele componente deve parar, 
enquanto que os outros componentes do sistema devem continuar funcionando. 
• Técnicas de sistemas tolerantes à falha: 
• Detecção de falhas 
• Algumas falhas podem ser detectadas. Esta possibilita o sistema isolar o 
problema e tratá-lo. 
• Checksum. 
• Outras situações não permitem uma detecção simples, como por exemplo, 
saber quando um servidor está fora do ar na Internet. 
• Ocultação de falhas 
• Permite que o sistema corrija a falha escondendo a sua ocorrência, por exemplo, 
do usuário. 
• Retransmissão de mensagens, escrita redundante a disco, etc.
Victor MedeirosProjeto de Sistemas Distribuídos
Tolerância a falhas
41
• Tolerar Falhas 
• Na Web os browsers são projetados para tolerar falhas. Quando um servidor não 
pode ser conectado, o browser não fica eternamente tentando estabelecer uma 
conexão, ao invés disso, ele encerra a tentativa de conexão e em seguida avisa o 
usuário sobre a desistência 
• Recuperação de Falhas 
• Dependendo do software, um projeto adequado permite que um sistema possa 
recuperar um estado consistente de dados até o momento antes da falha 
• Rolled back usado em BDs 
• Sistemas com Redundâncias 
• Os sistemas podem também oferecer componentesredundantes para evitar falhas 
• BDs com replicação de dados, Servidores de DNS e Roteadores.
Victor MedeirosProjeto de Sistemas Distribuídos
Tolerância a falhas
42
• Disponibilidade: 
• Quando um componente falha em um SD, apenas 
a parte que usa este componente é afetada 
• O componente pode ser reinicializado em outro 
computador. 
• Um SD tem mais partes disponíveis por mais 
tempo
Victor MedeirosProjeto de Sistemas Distribuídos
Transparência
43
• Transparência em SD é definido como a 
capacidade de ocultar do usuário e do 
programador a separação existente entre os 
componentes dentro do sistema, fazendo com 
que um sistema seja percebido como um todo e 
não como um conjunto de componentes 
independentes.
Victor MedeirosProjeto de Sistemas Distribuídos
Transparência
44
• A ANSA Reference Manual [ANSA 1989] e a ISO [ ISO 1992] identificaram oito formas 
de transparência: 
• Transparência de Acesso 
• É a capacidade de permitir acesso remoto ou local sempre da mesma maneira. 
• Interface gráfica de pastas e FTP 
• Transparência de Localização 
• É a capacidade de permitir acesso aos recursos sem o conhecimento da 
localização da mesma. 
• A técnica usada no URL 
• Transparência de Concorrência 
• É capacidade de permitir acesso aos recursos compartilhados de forma 
concorrente para vários usuários, sem que haja interferência entre eles 
• Web Server, FTP e BD
Victor MedeirosProjeto de Sistemas Distribuídos
Transparência
45
• Transparência de Replicação 
• É capacidade de permitir instâncias múltiplas de um componente para aumentar a 
confiabilidade e desempenho sem o conhecimento do usuário ou da aplicação. 
• DNS 
• Transparência à Falhas 
• É a capacidade de encobrir as falhas ocorridas, mas permitindo que usuários e/ou 
aplicações completem suas tarefas a despeito das falhas ocorridas de hardware ou 
de software 
• E-mail 
• Transparência de Mobilidade 
• É a capacidade de permitir que os recursos e usuários possam ser móveis dentro 
de um sistema, sem que isto afete as operações do usuário ou programa aplicativo 
• Telefones Celulares
Victor MedeirosProjeto de Sistemas Distribuídos
Transparência
46
• Transparência de Desempenho 
• É a capacidade de permitir que os SDs possam ser reconfigurados para 
providenciar desempenho mesmo com cargas variáveis. 
• a Web 
• Transparência de Escala 
• É a capacidade de permitir que o sistema cresça sem alterar a estrutura 
ou os algorítmos do sistema 
• Internet, Intranet

Continue navegando