Upload
alexsandropdantas
View
15
Download
0
Embed Size (px)
Citation preview
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)
3. Sistemas Embutidos Distribuídos Pervasivos (normalmente pequenos sistemas movidos a baterias, móveis & wireless)
� Sistemas Domésticos (ex. Smart phones, PDAs)
� Sistemas Eletrônicos para tratamento de saúde (Monitores de coração, BAN: Body Area Networks)
� Redes de Sensores (Base de Dados distribuídas com conexão wireless)
17/3/2009
Sistemas de Computação de Alto Desempenho
17/3/2009Sistemas Distribuídos – prof. Pacheco20
17/3/2009
11
Sistemas Distribuídos – prof. Pacheco21
Sistemas de Computação de Cluster (1)
�Conjunto de estações de trabalho ou PC semelhantes conectados
por meu de um a rede local de alta valocidade, constituindo um
ambiente para super computação;
�Maior homogeneidade (mesmo SO, etc.);
�Baixo custo (tecnologia de prateleira)
17/3/2009
Sistemas de Computação de Cluster (2)
17/3/2009Sistemas Distribuídos – prof. Pacheco22
17/3/2009
12
Sistemas de Computação de Cluster (3)
17/3/2009Sistemas Distribuídos – prof. Pacheco23
Sistemas Distribuídos – prof. Pacheco24
Sistemas de Computação de Cluster (4)
� Exemplo de um sistema de computação em cluster (modelo Beowulff).
17/3/2009
17/3/2009
13
Sistemas de Computação em Grid (1)
17/3/2009Sistemas Distribuídos – prof. Pacheco25
Sistemas Distribuídos – prof. Pacheco26
Sistemas de Computação em Grid (2)
�Diferentes dos sistemas baseados em Clusters, os sistemas de
computação em Grid tem um alto grau de heterogeneidades,
diferentes hardwares, Sos, redes, ...
�Usuários e recursos de diferentes organizações são interloigados,
permitindo total colaboração, criando uma Organização Virtual Organização Virtual
(V.O.V.O. = = VirtualVirtual OrganizationOrganization)
�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:
• CORBA (Common Object Request Broker Architecture)
• DCOM (Distributed Component Object Management)
• RPC (Remote Procedure Call)
• RMI (Remote Method Invocation)
17/3/2009
Sistemas Distribuídos – prof. Pacheco36
Sistemas Embarcados Distribuídos
� Requisitos para aplicações embarcadas:
• Adotar mudanças contextuais (significa que um dispositivo deve estar ciente do fato de seu ambiente pode mudar o tempo todo).
• Incentivar composição ad hoc (usos diferentes para usuários diferentes, por exemplo os PDA podem ter diferentes usos).
• Reconhecer compartilhamento como padrão (isso requer meios para ler, armazenar gerenciar e compartilhar informações com facilidade).
17/3/2009
17/3/2009
19
Sistemas Distribuídos – prof. Pacheco37
Sistema Eletrônico para Tratamento (pessoal) de
Saúde (1)
� Questões inirentes a aplicação:
• Onde e como os dados monitorados deverão ser armazenados?
• Como podemos evitar a perda de dados cruciais?
• Qual é a infra-estrutura necessária para gerar e transmitir sinais de alerta?
• Como os médicos podem dar retorno on-line?
• Como pode ser alcançada a extrema robustez do sistema de monitoração?
• Quais são as questões de segurança e como as políticas adequadas podem ser impostas?
17/3/2009
Sistemas Distribuídos – prof. Pacheco38
Sistema Eletrônico para Tratamento de Saúde (2)
� Monitoração de uma pessoa em um sistema eletrônico de tratamento de saúde utilizando(a) um hub local ou(b) uma conexão contínua sem fio.
17/3/2009
17/3/2009
20
Redes de Sensores
17/3/2009Sistemas Distribuídos – prof. Pacheco39
Sistemas Distribuídos – prof. Pacheco40
Redes de Sensores (1)
� Questões referentes a redes de sensores:
• Como montar (dinamicamente) um árvore eficiente
em uma rede de sensores?
• Como ocorre a agregação de resultados? Ela pode
ser controlada?
• O que acontece quando os enlaces falham?
17/3/2009
17/3/2009
21
Redes de Sensores
17/3/2009Sistemas Distribuídos – prof. Pacheco41
Sistemas Distribuídos – prof. Pacheco42
Redes de Sensores (2)
� Organizando um banco de dados de redes de sensores e, ao mesmo tempo, armazenando e processando dados (a) somente no site do operador …
17/3/2009