Você está na página 1de 38

Universidade Federal do Cear

Departamento de Engenharia de Teleinformtica

Sistemas Distribudos:
Introduo
Flvio R. C. Sousa
flavio@lesc.ufc.br
@flaviosousa
www.lia.ufc.br/~flavio
Sistemas Distribudos 2016.2

Bibliografia Bsica

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


Distribudos Conceitos e Projetos. 5 ed. Porto Alegre:
Bookman, 2013.
TANENBAUM,A, STEEN, V, M. Sistemas Distribudos
Princpios e Paradigmas. 2 ed. So Paulo: Pearson Prentice
Hall, 2007.

Motivao
Crescente dependncia de sistemas por

parte dos usurios


Demanda maior que avanos combinados
de hardware e software centralizados
Caractersticas inexistentes em sistemas
centralizados como tolerncia a falhas

Definio de Sistemas Distribudos

Coleo de computadores autnomos


conectados por uma rede e equipados com
um sistema de software que permita o
compartilhamento dos recursos do sistema:
hardware, software e dados. [Coulouris]

Coleo de computadores independentes


que se apresenta ao usurio como um
sistema nico e coerente. [Tanenbaum]
4

Definio de Sistemas Distribudos

Voc sabe que tem um sistema distribudo


quando a falha de um computador do qual voc
nunca ouviu falar faz com que voc pare
completamente de trabalhar. [Leslie Lamport]

Avanos tecnolgicos
Inveno de redes de computadores de

alta velocidade (anos 70):

Rede local (Local Area Network - LAN)


Rede global (Wide Area Network - WAN)

Desenvolvimento de microprocessadores

potentes (anos 80)

Estado da arte
relativamente fcil agrupar um grande

nmero de CPUs, conectando-as por uma


rede de alta velocidade
O software para sistemas distribudos
completamente diferente do software para
sistemas centralizados

Grandes desafios no desenvolvimento de sistemas


distribudos

Sistema Distribudo vs. Redes de Comp.

Rede: um meio para interconectar computadores e


trocar mensagens atravs de protocolos bem
definidos. Entidades da rede so visveis e
endereadas explicitamente
Sistema distribudo: a existncia de mltiplos
computadores autnomos, de forma transparente
Muitos problemas (e.g., abertura, confiabilidade) so
comuns a ambos, mas tratados em diferentes nveis:

As redes tratam no nvel de pacotes, roteamento, etc,


enquanto os sistemas distribudos tratam no nvel das
aplicaes
Todo sistema distribudo depende dos servios
oferecidos por uma ou mais redes de computadores
8

Sistemas Distribudos: Exemplos


Finanas e Comrcio:

Amazon, eBay, Paypal, Internet Banking, Caixa


Eletrnico.

Engenhos de busca e informao na web

Google, Yahoo, Wikipedia, Facebook, MySpace.

Indstrias Criativas e Entretenimento

Jogos online, compra de msica e filmes,


Youtube, Flickr .

Medicina

Monitoramento remoto de pacientes,


pronturios online.
9

Vantagens de Sistemas Distribudos


Melhor relao custo/benefcio
Maior capacidade de processamento
Maior confiabilidade e disponibilidade
Crescimento gradativo de capacidade
Compartilhamento de recursos

Hardware, software e dados

10

Desvantagens de Sistemas Distribudos


Desenvolvimento de software adequado
Falhas e saturao da rede de comunicao
Podem eliminar as vantagens destes sistemas
Segurana pode ser comprometida
Acesso a dados e recursos reservados

11

CARACTERSTICAS BSICAS DE
SISTEMAS DISTRIBUDOS

Caractersticas bsicas
Sem relgio fsico comum

Introduz a noo de distribuio, dando origem


assincronia inerente entre processadores.

Sem memria compartilhada

Requer troca de mensagens para comunicao.

13

Caractersticas bsicas
Separao geogrfica quanto mais

separado, mais um sistema distribudo


No necessariamente em uma WAN

Clusters pequenos sistemas distribudos

Autonomia e heterogeneidade

Processadores fracamente acoplados com


diferentes velocidades e diferentes SOs

14

Caractersticas bsicas
Hardware

Cada computador tem uma unidade de memria


e de processamento
So conectados por uma rede de comunicao

Software

Aplicao distribuda
Middleware
Sistema operacional
Pilha de protocolos de rede

15

Caractersticas bsicas
Compartilhamento de recursos
Heterogeneidade
Abertura
Escalabilidade
Transparncia
Concorrncia
Tolerncia a falhas
Segurana

16

Compartilhamento de recursos
Recurso

Termo abstrato e compreende tanto objetos de


hardware como discos e impressoras quanto
entidades de software como arquivos e banco de
dados

Motivaes:

Economia: compartilhamento de impressoras,


supercomputadores, sistemas de
armazenamento, etc. . .
Colaborao e troca de informaes: arquivos,
correio eletrnico, documentos, udio e vdeo,
groupware, teleconferncia, etc. . .
17

Heterogeneidade
Variedade e diferena em termos de:

Hardware
Sistemas operacional
Rede
Linguagem de programao
Implementaes de diferentes desenvolvedores

Exemplos de heterogeneidade na Internet

Diferentes implementaes do mesmo conjunto de


protocolos para diferentes tipos de rede: IP, TCP, UDP, SMTP
Diferentes padres de representao de dados: IDL, XML
Diferentes padres de bibliotecas: POSIX, DLL
Diferentes padres de invocao de servios: COM,
CORBA,RMI, SOAP
Diferentes plataformas de execuo: JVM (Java), CLR (.NET)
18

Abertura

Facilidade de extenso e atualizao

Adio de novos recursos e servios


Re-implementao de servios existentes

Depende que as interfaces de acesso aos principais


componentes do sistemas sejam conhecidas e
estejam disponveis para os desenvolvedores
Exemplos de abertura na Internet

Especificaes controladas e atualizadas por um Comit Gestor


Novos produtos e servios implementados de acordo com as
especificaes vigentes
Conformidade da implementao deve ser testada e verificada
para garantir o correto funcionamento do sistema (Quem
verifica?)

19

Interoperabilidade, Port. e Extensibilidade

Interoperabilidade

Portabilidade

Caracteriza at que ponto duas implementaes de


sistemas ou componentes de fornecedores diferentes
devem coexistir e trabalhar em conjunto,
especificados por um padro comum;
Caracteriza at que ponto uma aplicao
desenvolvida para um sistema distribudo A pode ser
executada, sem modificao, em um sistema B;

Extensibilidade

Define a capacidade de se adicionar novos


componentes ou substituir componentes existentes
sem afetar os que continuam no mesmo lugar.
20

Flexibilidade
Modelos de estrutura de SD:

Ncleo monoltico: inclui gerenciamento de


arquivos, diretrios e processos

Microncleo:

Mecanismo para comunicao entre processos


Gerenciamento bsico de memria
Gerenciamento de processos a baixo nvel
Operaes de entrada/sado a baixo nvel

21

Escalabilidade

Capacidade do sistema permanecer operando de


forma efetiva mesmo diante de um aumento
significativo do nmero de usurios e/ou dos
recursos disponveis
Principais desafios:

Controlar o custo dos recursos fsicos


Controlar perdas de desempenho
Prevenir o esgotamento dos recursos de software
Evitar gargalos de desempenho na rede ou nos prprios
servidores

Principais tcnicas:

Replicao
Caching
Concorrncia e paralelismo
22

Escalabilidade Geogrfica

Sistemas distribudos desenvolvidos para redes


locais tipicamente utilizam comunicao
sncrona

Contudo, a comunicao em WANs tipicamente trs


ordens de magnitude mais lenta;

Comunicao WAN no confivel e ocorre


ponto-a-ponto
LANs confivel e baseada em broadcast.

Facilita o desenvolvimento
n Exemplo: servio de localizao

23

Tcnicas para atingir a Escalabilidade


Esconder a latncia de comunicao
Comunicao assncrona
Mover parte da computao do servidor para o
cliente
Distribuio dos servidores
Replicao
Aumentar a disponibilidade e desempenho
Pode levar a problemas de consistncia
Tipo de replicao: caching

24

Transparncia a paralelismo
Paralelismo

Diviso de uma tarefa em subtarefas


coordenadas e que so executadas
simultaneamente em processadores distintos
Compilador, ambiente de execuo e sistema
operacional devem saber tirar vantagem do
potencial paralelismo de um sistema distribudo
sem mesmo que o programador saiba disso

Transparncia
Abstrao/Ocultao para os usurios e
programadores de aplicao
Sistema percebido como um todo coerente ao
invs de uma coleo de partes independentes
Uma medida de sucesso de um sistema
distribudo dada pela sua transparncia:

Em que medida indistinguvel de um sistema


centralizado com a mesma funcionalidade?

26

Transparncia
Tipos de transparncias

Acesso
Localizao
Migrao
Relocao
Replicao
Concorrncia
Falhas

27

Transparncia
Transparncia de acesso:

Permite o acesso a componentes remotos e


locais atravs das mesmas operaes
Ex:
n Network File System, Google Docs

Transparncia de localizao:

Permite o acesso a componentes sem


conhecimento da sua localizao fsica
Existncia de um mecanismo que determina a
localizao baseada em um nome
Ex:
n

URL

28

Transparncia
Transparncia de concorrncia:

Permite a execuo concorrente de mltipla


operaes sobre o mesmo conjunto de recursos sem
causar interferncia entre elas

Ex:

n Impressoras compartilhadas, leilo virtual

Transparncia de escala:

Permite a expanso do sistema e de suas aplicaes


sem exigir mudanas significativas na infraestrutura
existente
n O sistema no possui gargalos

Transparncia de mobilidade (migrao):

Permite a realocao de recursos e aplicaes sem afetar


o seu uso

29

Transparncia
Transparncia de Replicao

O usurio desconhece a existncia de vrias


cpias do recurso
Fundamental para desempenho e tolerncia a
falhas

30

Transparncia
Transparncia de falhas

A presena de falhas no sistema no percebida


pelos usurios
Implica na ausncia de um ponto nico de falha

31

Transparncia
Transparncia de desempenho

Recurso adicionais so adicionados para suprir a


nova demanda
Servios oferecidos pela Amazon (elasticidade)

32

Concorrncia

Suporte para mltiplos acessos simultneos a


um ou mais recursos compartilhados
Possibilidade de inconsistncias quando os recursos
so alterados

Servios devem garantir que as operaes de


acesso os mantenham em um estado
consistente

Vlido para servidores e objetos de aplicaes

Tcnicas mais comuns:

Sincronizao de acesso (ex.: excluso mtua


distribuda)
Protocolos de controle de concorrncia (ex.: 2PC)
33

Desempenho
Objetivo: transformar o desempenho to

bom quanto, ou mesmo superior, a de um


sistema centralizado
Tcnicas bsicas

Uso da cache
n Minimizar a necessidade de transferncia de dados e

sincronizao
n Explorar uso de paralelismo de alta granularidade
(threads, concorrncia etc.)

34

Segurana
Proteo para recursos compartilhados

Confidencialidade (proteo contra usurios no autorizados)


n Ex.: Acesso a dados sobre salrio, histrico mdico
Integridade (proteo contra alterao e corrupo)
n Ex.: Alterao indevida de dados usados em transaes
bancrias
Disponibilidade (proteo contra interferncia ao meio de
acesso)
n Ex.: Queda ou sobrecarga do servidor ou do meio de
comunicao

Principais mecanismos de segurana na Internet

Firewall
Assinaturas digitais
Canais de seguros de comunicao

Desafios recentes

Ataques de negao de servio


Segurana para cdigo mvel
35

Tolerncia a falhas

Falhas so inevitveis em sistemas computacionais

Resultados incorretos
Interrupo no planejada do servio antes de sua concluso

Falhas em sistemas distribudos so parciais


Tcnicas de tratamento de falhas mais comuns:
Deteco
n (ex. bits de paridade, somas de verificao)
Ocultamento
n (ex. retransmisso de mensagens)
Tolerncia
n (ex. informar o usurio do problema)
Recuperao
n (ex. transaes em BDs)
Redundncia
n (ex. replicao de tabelas no DNS)

Sistemas distribudos devem oferecer alta


disponibilidade de recursos mesmo diante da ocorrncia
de falhas

Disponibilidade: medida da proporo do tempo que um


recurso est disponvel para uso

36

Confiabilidade
Em teoria, como medir?
Aspectos:

Disponibilidade: frao do tempo em que o


sistema pode ser usado
Exatido: replicao versus consistncia
Segurana: Como um servidor pode verificar a
origem de uma mensagem?
Tolerncia a falhas: replicao versus
desempenho

Obrigado!
Flvio R. C. Sousa
flavio@lesc.ufc.br
@flaviosousa
www.lia.ufc.br/~flavio

Você também pode gostar