Sei sulla pagina 1di 27

SISTEMAS DISTRIBUÍDOS

paulobentes.ufpa@gmail.com

COULOURIS, G.; DOLLIMORE, T.; KINDBERG, T. Sistemas


Distribuídos: Conceitos e Projetos. 4 ed. Porto alegre:Bookman,
2007.
TANENBAUM, A. S.; STEEN, M. V. Sistemas Distribuídos:
Princípios e Paradigmas. 2 ed. São Paulo: Prentice Hall, 2007.

Prof. Paulo Bentes 1


Cap1 - Introdução
● Definição:
● “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”.
(COULOURES et al,2007)
● “Um sistema distribuído é um conjunto de
computadores indepedentes que se apresenta a
seus usuários como um sistema único e coerente”.
(TANENBAUM & STEEN, 2007)

Prof. Paulo Bentes 2


● Características
● Concorrência de componentes
– Compartilhamento de recursos
● Inexistência de um relógio global
– Coordenação de ações trocando mensagens
● Independência na ocorrência de falhas
– Falha de uma parte do sistema não é imediatamente
percebida pelos outros componentes com os quais ele se
comunica.
– Cada componente pode falhar independentemente,
deixando os outros ainda em funcionamento.

Prof. Paulo Bentes 3


● Motivação
● O desejo de compartilhar recursos
– Componentes de hardware: discos e impressoras, etc.
– Entidades definidas pelo software: arquivos e bancos de
dados, etc.

Prof. Paulo Bentes 4


● Exemplo 1
● A Internet
– Permite que seus usuários, onde quer que estejam,
façam uso de seus serviços:
● World Wide Web
● E-mail
● Transferência de arquivos

Prof. Paulo Bentes 5


● Os provedores de serviço de Internet, os ISPs
(Internet Service Providers), são empresas que
fornecem, através de variados tipos de acessos
(linhas discadas, ADSL, Cable, Frame Relay, Satélite,
etc) o acesso a usuários individuais, ou organizações,
à Internet.
● Estas tecnologias permitem que os usuários tenham
acesso aos backbones da Internet composto de
acessos de alta capacidade que interligam os ISPs
da mesma ou de várias empresas.
● Os ISPs podem fornecer ainda alguns serviços como
e-mail e hospedagem de páginas web (páginas que
compõem a World Wide Web)

Prof. Paulo Bentes 6


● Exemplo 2
● As Intranets
– Uma Intranet é uma parte da Internet administrada
separadamente, cujo limite pode ser configurado para
impor planos de segurança locais.
– Ela é composta de várias redes locais (Local Area
Networks – LANs) interligadas por conexões de
backbone.
– A configuração de rede de uma intranet em particular é
de responsabilidade da organização que a administra.
– Geralmente utilizam recursos de segurança como firewall
e IDS (Intrusion Detection Systems) para restringir e
controlar o acesso a todo ou parte de seus recursos.

Prof. Paulo Bentes 7


● Exemplo de intranet

Prof. Paulo Bentes 8


● Exemplo 3
● Computação móvel, ubíqua e pervasiva
– Móvel: aparelhos portáteis que permitem o movimento,
como notebooks, PDAs (assistentes digitais pessoais),
telefones móveis, etc.
– Ubíqua: dá noção de unipresença, isto é, o acesso a
serviços está disponível em qualquer lugar.
– Pervasivo: segere que pequenos equipamentos de
computação são entranhados nos objetos diários que
mal serão notados.

Prof. Paulo Bentes 9


● A presença de computadores em toda parte se
torna mais útil quando eles podem se
comunicar uns com os outros e possam ser
controlados e monitorados a partir de um único
dispositivo universal.
● Por exemplo um controle só para todos os
eletrodomésticos com suas ações coordenadas por
uma entidade central.

Prof. Paulo Bentes 10


● Compartilhamento de recursos
● Compartilhamento de equipamentos
– Impressoras, discos, etc.
● Compartilhamento de informações
– Banco de dados.
● Serviço: constituído de uma parte distinta de um sistema de
computador que gerencia um conjunto de recursos relacionados e
apresenta sua funcionalidade para para usuário e aplicativos, cujo
acesso se dá por um conjunto de operações que ele exporta.
– Sistemas de arquivos (leitura, escrita e exclusão),
– serviço de impressão (imprimir, excluir impressão),
– serviço de pagamento eletrônico (pagamento por boleto, pagamento por
cartão de crédito), etc.

Prof. Paulo Bentes 11


● Servidor: é um processo (programa em
execução) em um computador interligado em
rede, que aceita pedidos de outros programas
em execução chamados de clientes, para
efetuar um serviço e responder
apropriadamente.
● O mesmo processo pode ser tanto cliente
como servidor, pois os servidores podem
solicitar serviços de outros servidores.
● Os servidores funcionam continuamente,
enquanto os clientes duram apenas enquanto
os aplicativos que fazem parte estão ativos.
Prof. Paulo Bentes 12
● A World Wide Web
● É um sistema aberto e em evolução para
publicação e para acesso a recursos e serviços
pela Internet.
● A acesso é feito através de navegadores
(browsers) que funcionam como clientes na
utilização do serviço.
● A web fornece uma estrutura de hipertexto entre os
documentos que armazena baseada em padrões
de comunicação e de documentos. Estes
documentos contêm links (ou hiperlinks) que são
referências para outros outros documentos e
recursos que também estão disponíveis na web.
Prof. Paulo Bentes 13
● Se novos formatos forem utilizados na web os
usuários necessitarão de meios para “ler” no
novo formato.
● Os navegadores são então projetados de
maneira a acomodar novas funcionalidades de
apresentação de conteúdo, na forma de
aplicativos “auxiliares” e “plug-ins”.

Prof. Paulo Bentes 14


● A web é baseada em três componentes
tecnológicos principais:
● HTML (HyperText Marked Language) – linguagem
que especifica o conteúdo e layout de páginas de
forma que possam ser exibidas pelos navegadores.
● URLs (Uniform Resouce Locators) – identificam os
documentos e outros recursos armazenados como
parte da web.
● Uma estrutura cliente-servidor, com regras padrão
para interação.
– HTTP (HyperText Tranfer Protocol);
– FTP (File Tranfer Protocol); etc.

Prof. Paulo Bentes 15


● Todo URL, em sua forma completa, tem dois
componentes de nível superior:
esquema:identificador_específico_do_esquema
● O primeiro componente, o esquema, declara
qual o tipo dessa URL.
● Os URLs são obrigados a identificar uma
variedade de recursos.
● Ex: maito:jose@umISP.net
● Ex: ftp://ftp.dowloadIt.com/software/aProg.exe

Prof. Paulo Bentes 16


● Exercício
1)Forneça 3 exemplos de URL.
2)Quais os arquivos acessados quando utilizadas
entas URLs?
3)O que é necessário para disponibilizar e exibir um
página HTML localizada em um computador
remoto?
4)O que pode estar contido na página HTML (cite 3)?

Prof. Paulo Bentes 17


● Metas (1)
● Heterogeneidade
– A internet permite aos usuários acessarem serviços e
executarem aplicativos por meio de um conjunto
heterogêneo de computadores e redes. Ela se aplica aos
seguintes aspectos:
– Redes (ex:ethernet, ATM, satélite... mas utilizam a
arquitetura TCP/IP)
– Hardware de computador (ex: x86, sparc)
– Sistemas operacionais (ex:windows, unix)
– Linguagem de programação (ex: java, C)
– Implementação de diferentes desenvolvedores(ex:
representação diferentes de tipos de dados primitivos)

Prof. Paulo Bentes 18


● Metas (2)
● Sistemas Abertos
– Pode ser estendido e reimplementado de várias
maneiras. Novos serviços podem ser adicionados e
disponibilizados para uso por uma variedade de
programas clientes.
Ex: Web (Internet Explorer. Mozilla Firefox, etc)
– A documentação das principais interfaces de software
dos componentes de um sistema estão disponíveis para
os desenvolvedores de software, ou seja, as principais
interfaces são publicadas, de forma similar àquele
realizado por organizações de padronização.

Prof. Paulo Bentes 19


● Metas (3)
● Segurança
● Confidencialidade – proteção contra exposição para pessoas
não autorizadas (necessário também verificar a autoria).
● Integridade – proteção contra alteração ou dano (executáveis
com efeitos imprevisíveis – segurança de código móvel –
também podem gerar problemas de confidencialidade).
● Disponibilidade – proteção contra interferência com os meios de
acesso aos recursos (bombardeamento do serviço com um
grande número de solicitações sem sentido – ataque de
negação de serviço).

Prof. Paulo Bentes 20


● Metas (4)
● Escalabilidade
– Mantém a eficiência perante um aumento significativo no
número de recursos e no número de usuários.
● Ampliação do sistema a um custo razoável.
Ex: aumentando a quantidade de servidores.
● Controle da perda de desempenho.
Ex: gerenciamento de rede
● Estratégias para evitar o esgotamento de recursos.
Ex: IPv4 (32 bits) para Ipv6 (128 bits)
● Evitar gargalos de desempenho.
Ex: Arquivo hosts e o serviço de DNS (Domain Name System)

Prof. Paulo Bentes 21


● Metas (6)
● Tratamento de falhas (falhas parciais)
– Detecção de falhas
Ex: Somas de verificação
– Mascaramento de falhas
Ex: mensagens podem ser retransmitidas quando não chegam
Ex: dados de arquivos podem ser gravados em dois discos.
– Tolerância a falhas
Ex: quando um navegador não consegue contatar um servidor web, ele não faz
o usuário esperar indefinidamente, enquanto continua tentando, ele informa que
o servidor não respondeu.
– Recuperação de falhas (o estado dos dados permanentes podem ser
recuperados ou retrocedidos)
Ex: banco de dados
– Redundância
Ex: duas rotas entre dois roteadores; vários servidores de DNS; replicação de
banco de dados em vários servidores
Prof. Paulo Bentes 22
● Metas (7)
● Concorrência
– Vários clientes podem tentar acessar um mesmo recurso
compartilhado ao mesmo tempo.
Ex: lances de um leilão
– Recurso pode ser encapsulado como um objeto e as
chamadas podem ser executados em diferentes fluxos
de execução (processos ou threads, concorrentes) e ao
mesmo tempo garantir resultados consistentes.

Prof. Paulo Bentes 23


● Metas (8)
● Transparência
– É definida como sendo a ocultação, para um usuário final
ou para um programador de aplicativos, da separação dos
componentes em um sistema distribuído de modo que o
sistema seja percebido como um todo, em vez de uma
coleção de componentes independentes.
– Transparência de acesso – permite que recursos locais e
remotos sejam acessados com o uso de operações
idênticas.
– Transparência de localização – permite que os recursos
seja acessados sem o conhecimento de sua localização
física ou na rede.
– Transparência de concorrência – permite que vários
processos operem concorrentemente, usando recursos
compartilhados sem interferência entre eles.
Prof. Paulo Bentes 24
– Transparência de replicação – permite que várias instâncias dos
recursos sejam usadas para aumentar a confiabilidade e o
desempenho, sem conhecimento das réplicas por parte dos
usuários ou dos programadores de aplicativos.
– Transparência de falhas - permite a ocultação de falhas,
possibilitando que usuários e programas concluam suas tarefas,
mesmo na ocorrência de falhas em alguns componentes.
– Transparência de migração ou de mobilidade – permite a
movimentação de recursos e clientes dentro de um sistema, sem
afetar a operação de usuários ou programas.
– Transparência de desempenho – permite que o sistema seja
reconfigurado para melhorar o desempenho à mediada que as
cargas variam.
– Transparência de escalabilidade – permite que o sistema e os
aplicativos se expandam em escala, sem alterar a estrutura do
sistema ou os algoritmos de aplicativos.

Prof. Paulo Bentes 25


● Exercício 5
● Liste três componentes principais que podem falhar
quando um processo cliente invocar um método em
um objeto servidor. Dê um exemplo de falha em
cada caso. Sugira a maneira como os
componentes podem ser feitos para que o sistema
seja redundante.

Prof. Paulo Bentes 26


● Exercício 6
● Dê um exemplo para cada tipo de transparência
abaixo:
– Transparência de acesso
– Transparência de concorrência
– Transparência de migração

Prof. Paulo Bentes 27

Potrebbero piacerti anche