17/3/2009 1 Introdução Capítulo 1 17/3/2009 Sistemas Distribuídos Sistemas Distribuídos José Pacheco de Almeida Prado José Pacheco de Almeida Prado Sistemas Distribuídos – prof. Pacheco Conteúdo Programático Introdução aos Sistemas Distribuídos Arquiteturas de SD Processos Comuicação Sincronização Tolerância a Falhas Sistemas Distribuídos Baseados em Web e em Objetos 17/3/2009 Sistemas Distribuídos – prof. Pacheco 2
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
17/3/2009
1
Introdução
Capítulo 1
17/3/2009
Sistemas DistribuídosSistemas Distribuídos
José Pacheco de Almeida PradoJosé Pacheco de Almeida Prado
Sistemas Distribuídos – prof. Pacheco
Conteúdo Programático
� Introdução aos Sistemas Distribuídos
� Arquiteturas de SD
� Processos
� Comuicação
� Sincronização
� Tolerância a Falhas
� Sistemas Distribuídos Baseados em Web e em Objetos
17/3/2009Sistemas Distribuídos – prof. Pacheco2
17/3/2009
2
Bibliografia
17/3/2009Sistemas Distribuídos – prof. Pacheco3
Sistemas Distribuídos:Sistemas Distribuídos:
princípios e paradigmasprincípios e paradigmasSegunda Edição
ANDREW S. TANENBAUM
MAARTEN VAN STEEN
17/3/2009Sistemas Distribuídos – prof. Pacheco4
Bibliografia
17/3/2009Sistemas Distribuídos – prof. Pacheco4
Sistemas Operacionais ModernosSistemas Operacionais ModernosPrimeira Edição
ANDREW S. TANENBAUM
17/3/2009
3
Definição de Sistema Distribuído(1)
Um Sistema Distribuído (SD) é:
Um conjunto e computadores independentes que se apresenta a seus usuários como um sistema
único e coerente.
17/3/20095 Sistemas Distribuídos – prof. Pacheco
Definição de Sistema Distribuído(2)
17/3/2009Sistemas Distribuídos – prof. Pacheco6
17/3/2009
4
Definição de Sistema Distribuído(3)
17/3/2009Sistemas Distribuídos – prof. Pacheco7
www.top500.org
Definição de Sistema Distribuído(4)
17/3/2009Sistemas Distribuídos – prof. Pacheco8
17/3/2009
5
Um Sistema Distribuído organizado como um middleware.
O SD oculta as diferenças de hardware e de sistemas operacionais das
aplicações distribuídas. A camada middleware de se estende por várias
máquinas e oferece a mesma interface a cada aplicação.
Definição de Sistema Distribuído(5)
17/3/20099 Sistemas Distribuídos – prof. Pacheco
Metas de projeto
17/3/2009Sistemas Distribuídos – prof. Pacheco10
Um Sistema Distribuído deve:
� oferecer fácil acesso a seus recursos � groupware;
�ocultar razoavelmente bem o fato de que os recursos
são distribuídos por uma rede (TransparênciaTransparência);
�ser aberto � Inerface Definition Language (IDL) e
�poder ser expandido (EscalabilidadeEscalabilidade).
17/3/2009
6
Transparência em um Sistema Distribuído
Diferentes formas de transparência em um sistema distribuído.
Transparência Descrição
AcessoOcultar as diferenças na representação de dados e no modo de acesso a um recurso
Localização Ocultar o lugar em que um recurso está localizado
Migração Ocultar que um recurso pode ser movido para outra localização
RealocaçãoOcultar que um recurso pode ser movido para uma outra localização enquanto em uso
Replicação Ocultar que um recurso é replicado
ConcorrênciaOcultar que um recurso pode ser compartilhado por diversos usuários concorrentes
Falha Ocultar a falha e a recuperação de um recurso
Persistência Ocultar se um recurso (programa) está na memória ou em disco
17/3/200911 Sistemas Distribuídos – prof. Pacheco
12
Escalabilidade
A escalabilidade pode ser medida segundo três dimensões:
�Escalabilidade de tamanho: é fácil adicionar mais usuários e
recursos no sistema
�Escalabilidade geográfica: usuários e recursos podem estar
distantes entre si
�Escalabilidade administrativa: é fácil de gerenciar, mesmo que
abranja muitas organizações administrativas diferentes
17/3/2009Sistemas Distribuídos – prof. Pacheco
17/3/2009
7
Problemas na Escalabilidade (1)
Exemplos de limitações na escalabilidade.
Conceito Exemplo
Serviços Centralizados Um único servidor para todos os usuários
Dados Centralizados Uma única lista telefônica
Algoritmos CentralizadosFazer roteamento com base em informações completas
17/3/200913 Sistemas Distribuídos – prof. Pacheco
14
Problemas na Escalabilidade (2)
Características dos algoritmos descentralizados:
�Nenhuma máquina tem informações completas sobre o
estado do sistemas.
�As máquinas tomam decisões tendo como base somente
informações locais.
�A falha de uma máquina não arruína o algoritmo.
�Não há nenhuma premissa implícita quanto à existência de
um relógio global.
17/3/2009Sistemas Distribuídos – prof. Pacheco
17/3/2009
8
Técnicas de Escalabilidade(1)
17/3/2009Sistemas Distribuídos – prof. Pacheco15
Existem basicamente três técnicas para se ampliar um SD:
� Ocultar latência de comunicação � comunicação comunicação
assíncronaassíncrona;
� Distribuição e
� Replicação.
Técnicas de Escalabilidade (2)
ocultar latência
1.4
A diferença entre deixar:
a) Um servidor ou
b) Um cliente verificar formulários à medida que são preenchidos
17/3/200916 Sistemas Distribuídos – prof. Pacheco
17/3/2009
9
Técnicas de Escalabilidade (3)
distribuição
1.5
Um exemplo de divisão do espaço de nomes do DNS em áreas.
17/3/200917 Sistemas Distribuídos – prof. Pacheco
fluit.cd.vu.nl
Sistemas Distribuídos – prof. Pacheco18
Ciladas Quando Desenvolvemos
Sistemas Distribuídos
Premissas falsas que todos adotam ao desenvolver uma aplicação distribuída pela primeira vez:
�A rede é confiável.
�A rede é segura.
�A rede é homogênea.
�A topologia não muda.
�A latência é zero.
�A largura de banda é infinita.
� O custo de transporte é zero.
� Há só um administrador.
17/3/2009
17/3/2009
10
Sistemas Distribuídos – prof. Pacheco19
Tipos de Sistemas Distribuídos:
1. Sistemas de Computação Distribuídos � computação de auto desempenho
� Sistemas de Computação de Cluster
� Sistemas de Computação em Grade (Grid)
2. Sistemas de Informação Distribuídos
� Sistemas de Processamento de Transações
� Integração de Aplicações Comerciais (Troca de informações via RPC ou RMI)
�Os membros das V.O. tem total acesso a um conjunto comum de
recursos (por exemplo, os sistemas da policia americana, do FBI e
de outras agencias formam um grid).
17/3/2009
17/3/2009
14
Sistemas de Computação em Grid (3)
17/3/2009Sistemas Distribuídos – prof. Pacheco27
Sistemas Distribuídos – prof. Pacheco28
Sistemas de Computaçao em Grid (4)
� Um modelo em camadas para um sistema de computação em Grid.
Grid
Middleware
As aplicações
funcionam em uma
VO e fazem uso do
ambiente do Grid
3/17/2009
17/3/2009
15
Sistemas Distribuídos – prof. Pacheco29
Camadas do modelo de Grid Computing:
1. Camada de Coletiva (Collective layer): manipula o acesso a múltiplos recursos, normalmente consiste em serviços para descoberta de recursos, alocação e escalonamento de tarefas.
2. Camada de Conectividade (Connectivity layer): consiste em protocolos de comunicação para suportar transações da grade que abranjam a utilização de múltiplos recursos.
3. Camada de Recurso (Resource layer): gerencia um único recurso, como criar um processo ou ler um dado.
4. Camada Base (Fabric layer): fornece interfaces para recursos locais em um site específico.
17/3/2009
Sistemas Distribuídos – prof. Pacheco30
Sistemas para Processamento de Transações (1)
� Exemplos de primitivas para transações.
17/3/2009
17/3/2009
16
Sistemas Distribuídos – prof. Pacheco31
Sistemas para Processamento de Transações (2)
� Propriedades características das transações:
• Atômicas: para o mundo exterior, a transação acontece como se fosse indivisível.
• Consistentes: a transação não viloa as invariantes do sistema.
• Isoladas: transações interferem umas com as outras.
• Duráveis : uma vez terminada uma transação as alterações são permanentes.
17/3/2009
Sistemas Distribuídos – prof. Pacheco32
Sistemas para Processamento de Transações (3)
� Transações aninhadas.
17/3/2009
17/3/2009
17
Sistemas Distribuídos – prof. Pacheco33
Sistemas para Processamento de Transações (4)
� O papel do monitor TP (processamento de transações) em um SD.
17/3/2009
Sistemas Distribuídos – prof. Pacheco34
Integração de Aplicações Comerciais (1)
� Middleware como um facilitador de comunicação em integração de aplicações empresariais.
17/3/2009
17/3/2009
18
Sistemas Distribuídos – prof. Pacheco35
Integração de Aplicações Comerciais (2)
� Vários pacotes de middleware e protocolos de comunicação são usados para dar suporte as aplicações comerciais, entre eles: