sistemas distribuidos e paralelos

Transcrição

sistemas distribuidos e paralelos
SISTEMAS DISTRIBUIDOS
E PARALELOS
2014/2015 – 1º SEMESTRE
Caracterização de Sistemas Distribuídos
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Outline
• Introdução
• Exemplos de Sistemas Distribuídos
• Tendências
• Foco na partilha de recursos
• Desafios
Coulouris G., Dollimore J., Kindberg T., Blair, G.,(2011), Distributed Systems: Concepts
and Design (5th Edition), Addison-Wesley, ISBN: 978-0132143011 (Capitulo 1)
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Introdução
O que é um sistema distribuído?
You know you have a distributed system when the crash of a computer
you’ve never
heard of stops you from getting any work done.
—LESLIE LAMPORT
Um sistema distribuído é definido como um sistema onde componentes
de hardware ou software, localizados em computadores ligados a uma
qualquer rede, comunicam e coordenam as suas acções apenas através da
troca de mensagens.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Introdução
• Os computadores que estão ligados à rede podem estar
separados espacialmente por qualquer distância. Podem
estar em continentes diferentes ou no mesmo edifício ou na
mesma sala.
• Esta definição de sistemas distribuídos apresenta as
seguintes consequências:
• Concorrência
• Falta de relógio global
• Falhas independentes
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Introdução
• Concorrência:
• Numa rede de computadores o processamento concorrente é uma
norma. Cada máquina faz o seu trabalho independente, partilhando
recursos só quando necessário.
• A capacidade de um sistema para gerir recursos partilhados é
proporcional aos recursos existentes na rede.
• A coordenação de programas em execução concorrente que
partilham os mesmos recursos é um dos pontos fulcrais desta
questão.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Introdução
• Falta de relógio global:
• Quando os programas precisam de cooperar, coordenam as suas
operações através da troca de mensagens.
• Uma coordenação próxima depende geralmente de uma ideia do
tempo a que cada acção foi originada.
• Mas, não existe qualquer sincronização dos relógio internos de cada
computador de uma mesma rede, ou seja, não existe precisam no
tempo.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Introdução
• Falhas independentes:
• Todos os sistemas falham e, como tal, é dever dos responsáveis de
planearem as consequências de cada falha.
• Os sistemas distribuídos estão ainda mais suscetíveis a falhas que os
sistemas centralizados.
• Faltas na rede isolam os computadores, o que não impede que eles parem
de trabalhar. Os programas que estão em execução podem nem sequer dar
pela falta, ou ficarem simplesmente mais lentos.
• As falhas de um computador ou simplesmente o crash de um qualquer
programa de sistema, pode não ser imediatamente anunciado aos outros
componentes. Cada componente pode falhar independentemente,
mantendo os outros activos.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Introdução
• A primeira motivação para a utilização de sistemas
distribuídos prende-se com a partilha de recursos.
• Apesar desta abstracção, recursos são tudo o que é possível
partilhar numa rede de computadores.
• Recursos vão desde componentes de hardware , como
discos, processadores ou impressoras até entidades definidas
por software, tais como ficheiros, bases de dados e objectos
de dados de todo o tipo.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Outline
• Introdução
• Exemplos de Sistemas Distribuídos
• Tendências
• Foco na partilha de recursos
• Desafios
Coulouris G., Dollimore J., Kindberg T., Blair, G.,(2011), Distributed Systems: Concepts
and Design (5th Edition), Addison-Wesley, ISBN: 978-0132143011 (Capítulo 1)
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Exemplo de Sistemas Distribuídos
• Pesquisas Web
• Com mais de 10 biliões de pesquisa por mês, as pesquisas na
internet originaram o negócio com maior crescimento na última
década.
• A tarefa dos motores de pesquisa é indexar todo o conteúdo da
WWW, considerando a heterogeneidade de conteúdos (páginas,
multimédia, ebooks, etc..)
• Indexar cerca de 63 biliões de páginas e 1 trilião de endereços é
extremamente complexo.
• A Google ( o market leader) desenhou um sistema distribuído
sofisticado para suportar os mecanismos de pesquisa,
representando o maior e mais complexo SD da história.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Exemplo de Sistemas Distribuídos
• Pesquisas Web – Infraestrutura Google
• Uma infraestrutura física composta por um grande número de
computadores distribuídos por todo o globo.
• Um sistema de ficheiros distribuídos para suportar ficheiros de grandes
dimensões e extremamente optimizado para o tipo de uso requerido
pelas pesquisas e outras aplicações Google.
• Um sistema de armazenamento associado que oferece acesso rápido a
grandes volumes de dados.
• Um serviço de bloqueio (sincronização a recursos partilhados) que oferece
aos sistemas distribuídos funcionalidades como bloqueio distribuído e
acordos sobre uso de recursos.
• Um modelo de programação que suporta a gestão de computação
paralela e distribuída de larga escala entre a enorme infraestrutura física.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Exemplo de Sistemas Distribuídos
• Massively multiplayer online games (MMOGs)
• Os MMOGs oferecem uma experiência de jogo enorme com a
interligação de um grande número de jogadores a interligados
através da internet a um mundo virtual.
• Talvez o caso mais famoso actualmente seja o League of Legends
(LoL), com cerca de 27 milhões de jogadores por dia.
• Suportar um sistema distribuído de MMOGs é uma tarefa
extremamente complexa, principalmente devido aos rápidos
tempos de resposta que são exigidos para garantir a experiência de
utilização.
• Também a propagação de eventos em tempo real e a manutenção
do ambiente de jogo partilhado requer especial atenção.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Exemplo de Sistemas Distribuídos
• Massively multiplayer online games (MMOGs)
• Um grande número de soluções têm surgido.
• No EverQuest II, utilizava-se uma arquitectura cliente-servidor, onde
uma única cópia do estado do “mundo” era mantida num servidor
centralizado e acedido pelos programas clientes.
• Para suportar um largo número de clientes o servidor era um
complexo cluster com centenas de máquinas.
• Esta centralidade facilitava a manutenção do mundo virtual e
garantia a consistência.
• Optimizando os protocolos de comunicação permitia garantir a
rapidez de resposta e recepção de eventos.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Exemplo de Sistemas Distribuídos
• Massively multiplayer online games (MMOGs)
• Outros MMOGs utilizam estruturas de servidores distribuídos
geograficamente.
• Os utilizadores são depois alocados a um servidor especifico com
base no estado actual, localização, carga, latências, etc…
• Soluções mais radicais baseiam-se em sistemas completamente
distribuídos baseados em peer-to-peer, onde cada jogador contribui
com recursos de hardware (armazenamento e processamento).
• LoL segue a arquitectura cliente-servidor.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Exemplo de Sistemas Distribuídos
• Transações financeiras
• As transações financeiras sempre tiveram na tecnologia de ponta no
que toca a sistemas distribuídos.
• Bem recentemente surgiu uma polémica instalada devido à
instalação de cabos de fibra de alto débito entre Chicago e Wall
Street. Quem não estiver ligado…não joga. Chamam-lhe the Wall
Street’s Speed War.
• Nas transações financeiras é fundamental o acesso a um vasto
leque de informações em tempo real, para garantir as tomadas de
decisão certas e na hora.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Exemplo de Sistemas Distribuídos
• Transações financeiras
• O enfase principal está na comunicação e processamento de items
de interesse, ou seja, de eventos.
• Os SD devem entregar os eventos com fiabilidade e
atempadamente a um potencial muito vasto de clientes
interessados.
• Estes sistemas requerem uma arquitetura completamente distinta
das até aqui abordadas (cliente-servidor e peer-to-peer),
nomeadamente conhecidas como sistemas distribuídos baseados
em eventos.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Outline
• Introdução
• Exemplos de Sistemas Distribuídos
• Tendências
• Foco na partilha de recursos
• Desafios
Coulouris G., Dollimore J., Kindberg T., Blair, G.,(2011), Distributed Systems: Concepts
and Design (5th Edition), Addison-Wesley, ISBN: 978-0132143011 (Capitulo 1)
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Tendências
• Os sistemas distribuídos estão perante constante evolução.
As tendências actuais são:
•
•
•
•
O emergir dos sistemas pervasivos.
O emergir da computação ubíqua com suporte para mobilidade.
Os requisitos cada vez maiores dos serviços multimédia.
Visualizar os sistemas distribuídos como uma ferramenta.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Tendências
• Sistemas Pervasivos
per·va·si·vo
(inglês pervasive, do latim pervasus, -a, -um, particípio passado de pervado,
-ere, avançar, penetrar, estender-se, alastrar, penetrar, invadir)
adjetivo
1. Que se infiltra. = PENETRANTE
2. Que se espalha, infiltra ou penetra facilmente em algo ou alguém.
• A internet é composta por uma vastidão e heterogeneidade de
sistemas e tecnologias, desde o WiFi, WiMAX, Bluetooth até às
redes celulares de 4ª geração LTE e brevemente LTE-A.
• A conectividade tornou-se um recurso pervasivo e os dispositivos
hoje em dia podem estar ligadas anywhere at anytime.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Tendências
• Mobilidade e computação ubíqua
• Os avanços na tecnologia (Lei de Moore) têm permitido aumentar a
capacidade dos dispositivos, enquanto o tamanho dos mesmos é
reduzido.
• Actualmente, existem inúmeros dispositivos portáteis com
capacidades consideráveis de processamento, memória e interação
com o exterior.
• Laptops, Tablets, smartphones, redes de sensores, raspberries, etc…
• A portabilidade e conectividade destes dispositivos originaram a
computação móvel.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Tendências
• Mobilidade e computação ubíqua
• Computação móvel é a capacidade de executar tarefas enquanto o
utilizador está em movimento.
• A mobilidade introduziu uma série de novos desafios nos sistemas
distribuídos, nomeadamente:
• A conectividade
• A necessidade de manter a execução de operações em cenários
de mobilidade.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Tendências
• Mobilidade e computação ubíqua
• A computação ubíqua, por seu lado, aborda naturalmente os
dispositivos de reduzidas dimensões, de baixo custo, com
capacidades de processamento e memória e que facilmente se
adaptam ao ambiente em que são inseridos.
• Esses dispositivos só fazem sentido quando equipados com
capacidade de comunicação.
• Ex. Redes de Sensores sem Fios (RSSFs) – Wireless Sensor Networks
(WSN)
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Tendências
• Sistemas Multimédia Distribuídos
• Outra tendência nos SD assenta no suporte de sistemas multimédia em
suporte distribuído.
• O suporte de multimédia pode ser definido como a capacidade de suporte
um leque de tipos de media num modo integrado.
• A distribuição multimédia de conteúdos requer a capacidade para
guardar, pesquisar e disponibilizar conteúdos, como fotografias, vídeos e
áudio.
• O ponto crucial deste tipo de distribuição é que existe uma necessidade
temporal para garantir a qualidade de serviços na entrega do conteúdo.
• Para vídeo e áudio é necessário garantir um fluxo continuo (streaming) de
dados sem interrupções graves.
• Imaginem garantir esse fluxo em computação móvel….
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Tendências
• Sistemas Multimédia Distribuídos
• Actualmente existem inúmeras plataformas de conteúdos
multimédia, tais como:
• Youtube
• Netflix
• Etc..
• Existem ainda plataformas de comunicação multimédia em tempo
real, tais como:
• Skype
• Viber
• Etc..
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Tendências
• Sistemas Multimédia Distribuídos
• Aos sistemas de streaming de conteúdos denomina-se
normalmente de webcasting – ou seja – a habilidade de difundir
(broadcast) media continuamente sobre a internet.
• Este tipo de serviços colocam grandes desafios nas infraestruturas,
nomeadamente ao nível de:
•
•
•
•
Ricardo Mendão Silva
Suporte para a codificação – MPEG, HDTV, etc…
Garantias de Qualidade de Serviço (QoS).
Suportar estratégias de gestão de recursos para garantir o QoS requerido.
Suportar estratégias de adaptação para lidar com inevitabilidades em
sistemas abertos (Internet) onde a QoS não pode ser garantida (best effort).
[email protected]
Caracterização de SD
Tendências
• Computação Distribuída como uma utilidade
• Com a maturidade já alcançada nos sistemas distribuídos, várias empresas
estão a disponibilizar recursos distribuídos como utilidades, tal como a
água e electricidade.
• Desde modo, os recursos são fornecidos por um service provider em
modo de aluguer, em vez de adquiridos pelo utilizador.
• Recursos físicos como capacidade de armazenamento e/ou
processamento passam a ser alugados segundo as necessidades.
• A virtualização de sistemas operativos passa a permitir a alocação dinâmica e
imediata de qualquer tipo de máquina requisitada.
• Software as a Service (Saas) permite a distribuição de software através da
internet, sem a necessidade de o adquirir ou instalar fisicamente. Passa a
ser cobrado como um serviço e não como um produto.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Tendências
• Computação Distribuída como uma utilidade
• Estamos a falar de quê?
Cloud Computing como é óbvio 
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Outline
• Introdução
• Exemplos de Sistemas Distribuídos
• Tendências
• Foco na partilha de recursos
• Desafios
Coulouris G., Dollimore J., Kindberg T., Blair, G.,(2011), Distributed Systems: Concepts
and Design (5th Edition), Addison-Wesley, ISBN: 978-0132143011 (Capitulo 1)
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Partilha de recursos
• A partilha de recursos na rede é uma constante, sendo comum
partilharmos, por exemplo, impressoras, ficheiros ou outros
recursos locais.
• Porém, mais do que partilhar discos ou impressoras, os
utilizadores estão mais preocupados em partilhar conteúdos,
como, por exemplo, páginas web ou motores de busca, sem
estarem preocupados com os servidores que os suportam.
• A partilha é normalmente suportada por um tipo de serviço. Por
exemplo, a partilha de ficheiros permite operações do tipo ler,
escrever ou apagar.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Partilha de recursos
• A forma como as acções sobre um serviço são limitadas faz não só
parte da engenharia do mesmo, como também faz parte da forma
como os sistemas distribuídos estão organizados.
• Seguindo uma arquitectura cliente-servidor, a invocação de uma
operação de leitura é basicamente um comando enviado do
cliente ao servidor, respeitando a estrutura física montada.
• Numa arquitectura cliente-servidor, os pedidos são enviados do
cliente para o servidor, enquanto que as respostas seguem do
servidor para o cliente.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Partilha de recursos
• Por outro lado, quando um cliente envia um pedido para que
determinada operação seja executada no servidor, diz-se que o
cliente invocou uma operação.
• A operação completa, desde que o cliente invoca uma operação até
receber a resposta da mesma, chama-se invocação remota.
• O mesmo processo pode ser tanto cliente como servidor, uma vez
que os servidores também podem invocar outros servidores,
operando assim também como clientes.
• Assim, o nome cliente e servidor diz respeito ao papel que se
desempenha em determinada operação.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Partilha de recursos
• Os clientes são elementos activos
• Os servidores são elementos passivos.
• Os servidores estão a correr continuamente.
• Os clientes só correm enquanto a aplicação estiver activa.
• A WWW, o e-mail e as impressoras on-line são apenas
exemplos de arquitecturas cliente-servidor.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Outline
• Introdução
• Exemplos de Sistemas Distribuídos
• Tendências
• Foco na partilha de recursos
• Desafios
Coulouris G., Dollimore J., Kindberg T., Blair, G.,(2011), Distributed Systems: Concepts
and Design (5th Edition), Addison-Wesley, ISBN: 978-0132143011 (Capitulo 1)
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Os principais de desafios dos sistemas distribuídos são:
1.
2.
3.
4.
5.
6.
7.
8.
Ricardo Mendão Silva
Heterogeneidade
Abertura
Segurança
Escalabilidade
Gestão de falhas
Concorrência
Transparência
Qualidade de Serviço
[email protected]
Caracterização de SD
Desafios
• Heterogeneidade:
• A internet permite aos utilizadores acederem a serviços e
correrem aplicações sobre uma heterogeneidade de
computadores e redes.
• A variedade e diferença aplica-se a:
• Redes
• Hardware
• Sistemas Operativos
• Linguagens de programação
• Implementações por diferentes programadores.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Heterogeneidade:
• Apesar da heterogeneidade, todas as diferenças são mascaradas
pelo Internet Protocol (IP), que permite a comunicação entre
todas. Por exemplo, um computador a comunicar sobre
ethernet (802.3), consegue comunicar com um computador
ligado por wifi (802.11), ou com um sensor ligado por 6LowPAN
(802.15.4).
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Heterogeneidade:
• No entanto, apesar de falarem a mesma linguagem, o modo
como essa linguagem foi implementada no respetivo SO
também ela varia. Por exemplo, as chamadas para trocas de
mensagens em UNIX são diferentes das chamadas em Windows.
• Diferentes linguagens utilizam diferentes representações para
caracteres e estrutura de dados.
• Aplicações desenvolvidas por utilizadores distintos somente
conseguirão comunicar entre si, se essa comunicação for
implementada segundo standards conhecido.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Heterogeneidade:
• Middleware - O middleware é uma camada que permite a abstracção das
camadas imediatamente abaixo, nomeadamente da rede, hardware, SO e
linguagens de programação. Um exemplo bem conhecido de middleware é o
CORBA – Common Object Request Broker.
• Existem outros tipos de middleware, mais específicos, que só suportam uma
linguagem. O caso mais conhecido é o Java Remote Method Invocation
(RMI).
• Estes middlewares fornecem modelos de computação uniformes para serem
utilizados pelos programadores, tanto de servidores como de clientes. Esses
modelos podem incluir invocação remota de objectos, notificação remota de
eventos, SQL remoto e processamento de transações distribuído.
• CORBA fornece invocação remota de objectos, o que permite a um objecto
que está a correr numa máquina invocar um método de outro objecto de
outra máquina.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Heterogeneidade:
• Código móvel – Código móvel são trechos de código que podem ser
transferidos de uma máquina para serem executados no destino. As Java
applets são o exemplo mais conhecido de código móvel.
• Um código compilado para uma máquina possivelmente pode não correr
numa segunda máquina. Como sabemos, cada máquina implementa um tipo
de Instruction Set que pode não ser o mesmo da máquina vizinha.
• A abordagem de máquina virtual fornece mecanismos para que um
executável possa correr em diferentes máquinas. O compilador, gera código
não para linguagem máquina, mas para a máquina virtual.
• A Java Virtual Machine (JVM) é o exemplo mais concreto e popular, que
permite correr uma aplicação em diferentes arquitecturas, desde que
suporte JVM.
• Atualmente a inclusão de código Javascript em páginas web é o código móvel
mais comum.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Abertura:
• A abertura de um sistema é a característica que determina a
capacidade de um sistema ser estendido e reimplementado de várias
formas.
• A abertura de um sistema distribuído é caracterizada pela capacidade
de adicionar e disponibilizar novos recursos aos clientes.
• A abertura só pode ser alcançada se as interfaces de um determinado
sistema estiverem bem especificadas e documentas, permitindo aos
programadores desenvolver e integrar novos módulos facilmente.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Abertura:
• O grande desafio é assim integrar diversas peças de software e
hardware desenvolvidas por programadores e entidades diferentes.
• Para garantir isso existem normas:
• No âmbito da internet existem uma série de normas definidas em RFCs (Request
for Comment), controladas pelo IETF – Internet Engineering Task Force.
• Para além do IETF existem outras entidades como o W3C ou o IEEE, que definem
uma série de normas que devem ser seguidas em cada área, nestes dois casos,
respectivamente, web e comunicações L1 e L2.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Segurança:
• Um sistema fisicamente isolado não representa grande problemas do
ponto de vista da segurança de informação que nele circula.
• Porém, num sistema ligado à rede o panorama altera-se
completamente.
• Uma máquina ligada, é uma máquina exposta.
• Por isso, é mandatório implementar mecanismos que garantam a
segurança da informação que circula nos sistemas distribuídos.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Segurança:
• Um sistema fisicamente isolado não representa grande
problemas do ponto de vista da segurança de informação que
nele circula.
• Porém, num sistema ligado à rede o panorama altera-se
completamente.
• Uma máquina ligada, é uma máquina exposta.
• Por isso, é mandatório implementar mecanismos que garantam
a segurança da informação que circula nos sistemas
distribuídos.
• Confidencialidade, Integridade e disponibilidade.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Segurança:
• No âmbito dos sistemas distribuídos existem duas questões que ainda não
foram completamente resolvidas:
1. Ataques de Denial of Service – Um utilizador pode querer bloquear um
determinado serviço. Isso pode ser efectuado, por exemplo, através de
técnicas de flooding de mensagens, de tal ordem que comprometem a
escalabilidade do sistema e o mesmo fica inoperacional.
2. Segurança do código móvel – Código móvel pode trazer muitos problemas
no que toca a segurança. Imagine-se o envio de um executável para o
cliente. A sua execução pode originar tanto a acção esperada pelo
utilizador, como uma acção contrária.
Por exemplo, muitas vezes os trojans, como o NetBus, eram difundidos como
sendo código não malicioso, mas que uma vez executados davam acesso a todos os
recursos locais.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Escalabilidade:
• Um dos pontos fundamentais num sistema distribuído é a
escalabilidade do mesmo.
• Entende-se por escalabilidade em SD, a capacidade em suportar
o aumento tanto dos recursos como dos utilizadores.
• O número de utilizadores e servidores na internet tem crescido
abruptamente nos últimos anos. Este é um sinal claro de
escalabilidade da própria internet.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Escalabilidade:
• Número de servidores na internet
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Escalabilidade:
• O desenho de sistemas distribuídos escaláveis apresenta os
seguintes desafios:
1. Controlo do custo dos requisitos físicos
Aumentar o número de servidores (por exemplo) deve ser
possível considerando um custo/utilizador eficiente.
2. Controlo da perda de performance
Maior é um sistema distribuído mais difícil é garantir a
performance de certas acções. Por exemplo, considerando a
navegação numa lista de nomes (DNS), tanto numa organização
linear como hierárquica, a performance ao pesquisar em n+1
elementos é sempre inferior à performance ao pesquisar n.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Escalabilidade:
3. Prevenir que os recursos de software se esgotem
Os recursos de software terão de ser suficientes para as
capacidades do hardware. O exemplo mais popular é o uso do
IPv4 de 32 bits, cuja capacidade está perto do limite, tendo
obrigado ao desenvolvimento de uma nova versão de 128, o
IPv6.
4. Evitar bottlenecks na performance
Centralizar uma série de serviços num único servidor poderá
criar problemas de acesso, caso o número de utilizadores escale
para além das capacidades da rede, provocando um bottleneck
(pescoço de garrafa). Para evitar este problema a solução mais
evidente será replicar os servidores, colocando-os em acessos
distintos.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Gestão de falhas
• Como vimos, os computadores por vezes falham. Quando
ocorrem faltas no hardware ou software, os programas podem
falhar ou mesmos parar antes de completarem as tarefas.
• As falhas nos sistemas distribuídos, por sua vez, são falhas
parciais, uma vez que um componente pode falhar enquanto
que outro continua em execução.
• O desafio prende-se por detectar e gerir essas falhas de modo
imperceptível.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Gestão de falhas
• No capitulo de gestão de falhas iremos lidar em pormenor com:
•
•
•
•
•
Ricardo Mendão Silva
Detecção de falhas
Dissimulação de falhas
Tolerância a falhas
Recuperação de falhas
Redundância
[email protected]
Caracterização de SD
Desafios
• Concorrência
• Tanto os serviços como as aplicações disponibilizam recursos
aos clientes.
• A probabilidade de vários clientes acederem em simultâneo aos
mesmos recursos é elevada, obrigando à implementação de
mecanismos de suporte.
• O processo que controla o acesso a um determinado recurso
pode servir um cliente de cada vez, mas isso causaria problemas
de capacidade de resposta (throughput).
• Deste modo, a utilização de mecanismos que permitam servir
mais que um cliente ao mesmo tempo são aplicados, levando ao
conceito de concorrência.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Transparência
A transparência define-se como a capacidade de ocultar toda a
estrutura que compõe um sistema distribuído, apresentando o
mesmo como um único elemento e não como um conjunto de
máquinas dispersas.
A transparência é definida segundo o elemento onde se aplica,
nomeadamente:
• Transparência no acesso – permite que recursos locais e
remotos sejam acedidos do mesmo modo.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Transparência
• Transparência na localização – permite que recursos sejam
acedidos sem se saber qual a sua localização física ou de rede.
• Transparência na concorrência – permite que vários processos
operem em simultâneo com partilha de recursos, sem qualquer
interferência entre eles.
• Transparência na replicação – permite que várias instâncias de
recursos sejam utilizadas tanto para garantir fiabilidade como
performance, sem que o utilizador perceba.
• Transparência nas falhas – permite a ocultação de faltas e
falhas, permitindo os utilizadores e aplicações terminarem as
suas acções sem qualquer prejuízo.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Transparência
• Transparência na mobilidade – Permite a movimentação de
clientes e recursos dentro de um sistema sem afectar as
operações.
• Transparência na performance – Permite que o sistema seja
reconfigurável de modo a melhorar a performance segundo a
variação da carga (load balancing).
• Transparência na escalabilidade – permite que o sistema e as
aplicações sejam expandidos sem alterar a estrutura do sistema
ou os algoritmos das aplicações.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Transparência
• As transparências mais importantes são o acesso e a localização
transparente.
• Por vezes ambas são conhecidas como transparência de rede, uma
vez que são responsáveis pela transparência na distribuição física e
lógica dos recursos de um rede.
• Transparência de acesso - considere-se, por exemplo, o acesso a
ficheiros remotos. Antes do aparecimento dos serviços cloud, em
particular do dropbox, era necessário utilizar o protocolo FTP e
aplicações especificas para aceder a ficheiros remotos. Actualmente,
com a cloud completamente integrada nos sistemas operativos, é
possível aceder a ficheiros remotos, seja dropbox, Google Drive, Sky
drive, etc., do mesmo modo que acedemos a ficheiros locais.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Transparência
• Transparência de localização- considere-se, por exemplo, o URL
http://academy.autonoma.pt/
• A parte do endereço que identifica um domínio no servidor web
(o domínio academy), refere-se ao nome da máquina no
dominio e não a um endereço de internet.
• No entanto, este dominio não é transparente na mobilidade,
pois se o web site “academy” mudar para outro dominio, terá
forçadamente de alterar todos os links, o que deixa de ser
transparente.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Transparência
• Transparência de acesso e localização- considere-se, por
exemplo, o endereço de e-mail [email protected].
• O endereço consiste no nome do utilizar e no domínio.
• Enviar um e-mail para este endereço não obriga a conhecer a
localização física ou de rede do utilizador.
• Tal como não depende da localização do receptor.
• Como tal, existe transparência no acesso e localização.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Qualidade de Serviço
• Uma vez alcançado o serviço requerido num sistema distribuído,
o próximo passo é garantir que esse serviço é prestado com a
qualidade devida.
• Os principais pontos não-funcionais que afectam a qualidade de
serviço são:
• Fiabilidade
• Segurança
• Performance
A adaptabilidade do sistema para garantir a QoS devida é também
vista como um dos pontos mais importantes.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Qualidade de Serviço
• A fiabilidade e segurança são pontos importantes no desenho
de qualquer sistema.
• Por sua vez, a performance foi originalmente definida em
termos de capacidade de resposta e throughput, mas cedo
passou a estar relacionada com a capacidade em dar garantias
de tempos de resposta.
• A performance em sistemas multimédias é facilmente medida
pelo utilizador, sendo o exemplo mais directo e onde, caso
ocorram problemas, mais rapidamente são notados.
Ricardo Mendão Silva
[email protected]
Caracterização de SD
Desafios
• Qualidade de Serviço
• O suporte de Qualidade de Serviço por parte das redes é
tradicionalmente suportado por dar prioridade a aplicações
segundo o tipo como são classificadas.
• A internet, por sua vez, segue uma prática best-effort, não
existindo prioridades ao nível da rede.
• Porém, a largura de banda disponível actualmente leva a que na
maioria dos casos as questões elementares de QoS estejam
cobertas.
Ricardo Mendão Silva
[email protected]
Dúvidas e Questões
Ricardo Mendão Silva
[email protected]
Ricardo Mendão Silva
[email protected]

Documentos relacionados

processos - Ricardo Mendao Silva

processos - Ricardo Mendao Silva SISTEMAS DISTRIBUIDOS E PARALELOS 2014/2015 – 1º SEMESTRE Comunicação Inter-processos

Leia mais

Sistemas de Ficheiros Distribuídos

Sistemas de Ficheiros Distribuídos Os sistemas de ficheiros foram originalmente desenvolvidos, como parte dos sistemas operativos, para sistemas centralizados e desktops. Mais tarde ganharam capacidades adicionais, tais como, contro...

Leia mais