Você está na página 1de 17

1 Conceitos de Sistemas Distribudos - Introduo

Sistemas Distribudos
CONCEITOS DE SISTEMAS
DISTRIBUDOS

Prof. Gregorio Perez Peiro


gregorio@uninove.br

LICENA DE USO Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Este material est disponvel sob a licena CreativeCommons 2.5 Brasil de


Atribuio-uso No Comercial Compartilhamento pela mesma licena 2.5 Brasil
http://creativecommons.org/licenses/by-nc-sa/2.5/br/

copiar, distribuir, exibir e


Voc pode: executar a obra

criar obras derivadas

Sob as seguintes condies:

Atribuio Voc deve dar crdito ao autor original, da forma


especificada pelo autor ou licenciante
Uso No-Comercial Voc no pode utilizar esta obra com finalidades
comerciais
Compartilhamento Se voc alterar, transformar, ou criar outra obra com
pela mesma Licena base nesta, voc somente poder distribuir a obra
resultante sob uma licena idntica a esta
Para cada novo uso ou distribuio, voc deve deixar claro para outros os termos da licena
desta obra.
Qualquer uma destas condies podem ser renunciadas, desde que Voc obtenha permisso
do autor. 2
Nada nesta licena prejudica ou restringe os direitos morais do autor

prof. Gregorio Perez Peiro Sistemas Distribudos


2 Conceitos de Sistemas Distribudos - Introduo

Conceitos de Sistemas Distribudos


No momento inicial da
INTRODUO dcada de 70 qualquer sistema
onde ocorria alguma troca de

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


Os primeiros conceitos de Sistemas Distribudos sugiram na
dcada de 70 quando as redes de computadores comearam a mensagens era considerado um
se tornar viveis tcnica e economicamente Sistema Distribudo, inclusive
um computador independente
Assim, de modo geral a disciplina de Sistemas Distribudos faz
estudos sobre todos os tipos de redes em que h no qual os processos de
compartilhamento de recursos entrada, sada, memria e
processamento so separados!
Apesar da viso inicial deste compartilhamento estar ligada a
recursos como impressora, arquivos, banco de dados, etc...
Sistemas Distribudos tambm est associado ao conjuntos de
processos concorrentes acessando recursos distribudos, os quais
podem ser compartilhados atravs de passagem de mensagens
em ambiente de rede

Primeiros Conceitos de Sistemas Distribudos

DEFINIES
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Um Sistema Distribudo consiste de um conjunto de processos


distintos, espacialmente separados que se comunicam por troca
de mensagens O conceito de tempo
Lamport, 1978 [01]
associado transmisso de
uma mensagem importante
Pela abordagem inicial dada por Lamport em 1978, qualquer
em sistemas distribudos e
rede de computadores interligados so considerados sistemas derivado do conceito de ordem
distribudos
dos evento e de particular
interesse na soluo de
Adicionalmente, Lamport considera que um sistema distribudo
se o atraso da transmisso da mensagem no desprezvel problemas de sincronizao
comparada ao tempo entre eventos de um processo nico [01].

prof. Gregorio Perez Peiro Sistemas Distribudos


3 Conceitos de Sistemas Distribudos - Introduo

Primeiros Conceitos de Sistemas Distribudos


A concorrncia (e seus
DEFINIES problemas) existe porque no
ambiente de redes, cada

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


Sistema no qual os componentes de hardware e software
localizados em uma rede de computadores se comunicam e computador independente
coordenam suas aes somente por troca de mensagens permitindo o trabalho
Coulouris et al, 2001 [02]
simultneo em vrias
mquinas.
Nesta definio, computadores conectados em rede devem estar
espacialmente separados por alguma distncia entre si A inexistncia de relgio global
resultando como conseqncias: conseqncia do fato do
tempo necessrio para a troca
Concorrncia
No existncia de relgio global
de mensagens no ser
Falhas Independentes desprezvel em sistemas
geograficamente dispersos.
5 Esta considerao motivada
diretamente pelo ambiente de
rede e leva as mesmas idias
Considerando que todos os sistemas computacionais de sincronizao consideradas
falham, Coulouris considera que os sistemas distribudos por Lamport [01].
falham de novas maneiras, isolando uma parte do sistema
sem acarretar falha global [02]! Algumas destas falhas so
associadas a problemas diversos de comunicao e algumas
vezes so referidas como falhas Bizantinas [03].

Sistemas Distribudos
Primeiros Conceitos de Sistemas Distribudos
no so diferentes dos
sistemas em rede, so DEFINIES
sistemas fracamente acopla-

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


Sistema Distribudo um conjunto de processadores que no
dos interconectados por uma compartilham memria nem relgio. Os processadores se
rede de comunicao. Do comunicam por meio de redes de comunicao
ponto de vista de um Silberschatz, 2000 [05]

processador especfico, os
Silberschatz considera que os sistemas distribudos so mais
demais processadores e flexveis e seus componentes possuem maior autonomia se
respectivos recursos so assemelhando muito a sistemas de rede, porm com o controle
de um nico Sistema Operacional
remotos, enquanto seus
recursos locais. O propsito Instalao A
Instalao C
Servidor
de um sistema distribudo Cliente
fornecer um ambiente eficien- Instalao D

te para o compartilhamento Instalao B


de recursos remotos. Cliente 6
recursos
Novamente o conceito
de relgio global
considerado. A questo de
A necessidade de um nico sistema operacional se traduz em
sincronizao de sistemas
um ambiente homogneo. Esta opo pode no ser o mais
cooperativos que trabalham
apreciada uma vez que o ambiente heterogneo um atrativo
de maneira concorrente
em sistemas de compartilhamento de recursos dispersos, mas
apresenta um dos principais
facilitaria a configurao e gerncia destes sistemas.
desafios para sistemas
geograficamente dispersos

prof. Gregorio Perez Peiro Sistemas Distribudos


4 Conceitos de Sistemas Distribudos - Introduo

Primeiros Conceitos de Sistemas Distribudos

DEFINIES
Para um conjunto de

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


Sistema Distribudo um conjunto de computadores
independentes (autnomos) que se apresenta a seus usurios componentes autnomos
(pessoas ou programas) como um sistema nico e coerente aparentar ser um nico
Tanenbaum, 2007 [04] sistema deve ter ser
componentes que colaboram
Nesta viso sistemas distribudos so compostos por sistemas entre si. Isto significa que
com autonomia reduzida tipicamente unidos por uma camada de
software e comumente chamados de Middleware permitindo que precisaro executar as
possuam seu SO local tarefas de maneira coope-
rativa, estando sujeitos aos
Mquina A Mquina B Mquina C Mquina D
mesmo problemas de
Aplicao Aplicao Distribuda Aplicao
sincronizao referidos
Camada de Middleware
anteriormente.
SO 1 SO 2 SO 3 SO 4

Tanenbaum inicialmente desconsidera o tipo de computador utilizado (mainframe, PC,


etc...) e a maneira de conexo entre este computadores, assumindo o grau de liberdade e
flexibilidade dos sistemas em rede. Para permitir um ambiente heterogneo de rede e
computadores, uma camada de Middleware (figura) pode se estender por vrias mquinas para
oferecer uma interface para as aplicaes.

Conceitos de Sistemas Distribudos

DEFINIES
Assim, de modo geral,
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

As diferentes definies descritas foram feitas a partir de


preocupaes particulares dos sistemas distribudos que levam a sistemas com mltiplos
diferentes abordagens processadores ou com
mltiplos fluxos de controle
Apesar das diferenas, o ttulo Distribudo usualmente (Threads) so tratados
reservado para sistemas formados por processadores dispersos
geograficamente compartilhando recursos e cooperando para a como Sistemas Distribudos.
realizao de alguma tarefa O critrio bsico para esta
considerao ser a pos-
Assim, trataremos Sistemas Distribudos como sendo um sibilidade de compartilhar
conjunto de sistemas autnomos (independentes em recursos)
recursos entre componentes
interligados por uma rede de comunicao que se comportam
como um sistema fortemente acoplados separados que trabalharo e
maneira cooperativa.

prof. Gregorio Perez Peiro Sistemas Distribudos


5 Conceitos de Sistemas Distribudos - Introduo

A Internet representa
EXEMPLOS DE SISTEMAS DISTRIBUDOS o mais amplo dos sistemas
em rede (fracamente

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


A abordagem considerada leva a diversos exemplos de sistemas
distribudos e a diferentes problemas e solues acoplados) com maior
potencial de compartilha-
Abordagens que consideram sistemas distribudos mais flexveis, mento de recursos. Apesar
no quais o requisito apenas o compartilhamento entre sistemas de apresentar baixo
separados geograficamente consideram a Internet e qualquer
configurao de intranet como um sistema distribudo desempenho, a facilidade de
acesso aos recursos e a
Internet possibilidade de trabalhar de
Intranet maneira cooperativa a
Computao Mvel grandes distncias torna a
Computao Ubqua Internet um bom exemplo
de sistemas distribudos (do
ponto de vista geogrfico e
9
de compartilhamento de
recursos).

Apesar de suas vantagens, os problemas de comunicao (intruso e perdas de dados,


entre outros) so evidentes no ambiente da Internet.

Exemplos de Sistemas Distribudos

INTERNET E INTRANET
A Intranet se torna
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Servidores um ambiente alternativo


de Internet
para promover a
Rede
Corporativa produtividade em ambientes
Internet corporativos ou mesmo
residenciais. Com uma
configurao similar e at
possuindo acesso Internet,
sua configurao adequada
permite maios segurana e
trabalho cooperativo
eficiente para os objetivos
da empresa.
10
Rede Domstica Intranet

Alm disso, para prover uma melhor qualidade de trabalho, usual estruturar este ambiente de
forma homognea com equipamentos de arquitetura similar e mesmo sistema operacional,
tornando a Intranet um exemplo perfeito para o sistema distribudo descrito por Silberschatz
[05].

prof. Gregorio Perez Peiro Sistemas Distribudos


6 Conceitos de Sistemas Distribudos - Introduo

Exemplos de Sistemas Distribudos

COMPUTAO UBQUA E COMPUTAO MVEL


A computao mvel

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


Computao Ubqua um agrupamento de uma grande
quantidade de dispositivos pequenos e baratos que esto est intimamente ligada aos
presentes no ambiente fsico dos usurios, como residncia e computadores portteis e,
escritrio, alm dos dispositivos portteis [02]
portanto, vinculada aos
sistemas embarcados.
Computao ubqua e computao mvel se confundem, mas
geralmente so diferentes:
Pelo dicionrio Michaelis,
Na computao ubqua o usurio beneficiado quando ele ubquo significa onipresente;
permanece em um nico ambiente, como uma biblioteca ou em que est ou pode estar em
sua casa, isto , est presente no ambiente, mesmo que o
usurio no se d conta todos os lugares ao mesmo
tempo.
A computao mvel est mais associada aos dispositivos
mveis utilizados pelo usurio, como computadores portteis,
celulares e assistentes pessoais 11

O termo ubquo foi utilizado pela primeira vez por Weiser em 1993 [06], [07] e tem
inteno de sugerir que os pequenos dispositivos informatizados eventualmente se tornaro to
impregnados no ambiente que passaro despercebidos no uso dirio. Isto significa que seu
comportamento computacional se tornar transparente e intimamente ligado s suas funes.

A computao ubqua pode ser considera como a terceira grande onda da computao: primeiro
vieram os mainframes, depois os PCs e agora surge a computao ubqua que considerada pela
Sociedade Brasileira de Computao, um dos grandes desafios da computao no Brasil [08].

Conceitos de Sistemas Distribudos

CARACTERSTICAS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

O fato de podermos ter um Sistema Distribudo no significa que


ele a melhor soluo

Deve-se observar as caractersticas desejadas como ter um fcil


acesso aos seus recursos, ocultar o fato dos recursos estarem
distribudos em uma rede, ser flexvel e poder ser expandido

Principais Objetivos de um Sistema Distribudo

Compartilhamento de Recursos
Confiabilidade
Desempenho

12

prof. Gregorio Perez Peiro Sistemas Distribudos


7 Conceitos de Sistemas Distribudos - Introduo

mais barato
Objetivos dos Sistemas Distribudos compartilhar uma
COMPARTILHAMENTO DE RECURSOS impressora (ou outro
componente) por diversos

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


A principal meta dos Sistemas Distribudos facilitar o acesso a
recursos remotos (hardware, dados, pginas Web, etc...) e seu usurios do que ter uma
compartilhamento impressora para cada
usurio.
A razo bvia para o compartilhamento dos recursos a
Economia
Tambm economicamente
O compartilhamento tambm facilita a colaborao e a troca de
justificvel compartilhar
informaes entre usurios separados geograficamente, equipamentos de mais alto
permitindo que trabalhem em conjunto em organizaes virtuais custo como supercom-
(groupware)
putadores ou mesmo
estaes de tratamento de
imagens e unidades de
armazenamento de alto
13
desempenho e capacidade.

GroupWare um termo usado para descrever softwares que facilitam a colaborao e o


trabalho em grupo atravs do compartilhamento de informaes. A maior parte dos produtos
GroupWare fornece uma interface para ambiente colaborativo permitindo aos usurios
compartilhar itens como calendrios e contatos, garantindo maior produtividade dos usurios.
Por exemplo, uma secretria pode alocar um compromisso no calendrio do chefe, de forma que
este consiga visualiz-lo de qualquer lugar via Internet.

Objetivos dos Sistemas Distribudos

COMPARTILHAMENTO DE RECURSOS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Naturalmente, o aumento de conectividade abre espao para


intruses na comunicao e invases de privacidade

Os problemas de segurana vo desde o rastreamento de


comunicao, uso de comunicao indesejvel (spam) at
invases de para obteno de informaes sigilosas

Um exemplo destes problemas de segurana o rastreamento


de comunicaes para montar um perfil de preferncias de um
usurio especfico que caracteriza uma violao explcita da
privacidade

14

prof. Gregorio Perez Peiro Sistemas Distribudos


8 Conceitos de Sistemas Distribudos - Introduo

Algumas tarefas
Objetivos dos Sistemas Distribudos
devem ser executadas de
CONFIABILIDADE maneira contnua no
podendo sofrer interrupes

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


De modo geral espera-se que os sistemas distribudos sejam
mais confiveis do que sistemas centralizados uma vez que como aquelas associadas ao
existe redundncia de recursos sistema financeiro (Bancos,
bolsa de valores,...),
Podemos definir a confiabilidade como a probabilidade de um
sistema estar operando ou funcionando em um certo intervalo de
telemedicina e sistemas
tempo crticos (tempo real), entre
outras.
Para ser confivel, um sistema deve possuir alta disponibilidade Um sistema ser confivel
e segurana
no significa que ele
Normalmente, utilizamos mecanismos de redundncia (de seguro! A segurana do
hardware ou software) para melhorar a confiabilidade do sistema sistema est ligada a
integridade dos dados e a
15 confiabilidade est asso-
ciada a operao correta.

Fail Stop [10] um modo


Objetivos dos Sistemas Distribudos
de falha muito simples cujos
CONFIABILIDADE danos visveis so:
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro
Sendo um defeito mecnico ou algortmico, uma falha ocorre
quando o comportamento do processador no consistente com - O sistema para de
sua definio semntica o que gera um erro que pode causar a funcionar
paralisao do sistema

H dois tipos de falhas dependendo de seu comportamento


O estado interno e os
[Sinha -09]: dados contidos neste
estado so perdidos
Fail-stop [10]
Em uma falha de parada, o sistema para de funcionar aps
mudar para o estado no qual a falha pode ser detectada
Como estes problemas so
visveis e facilmente
Falha Bizantina [03] detectados, a sua preveno
No caso das falhas bizantinas o sistema continua trabalhando, facilitada.
mas no produz os resultados corretos
16

Confiabilidade
Falhas Bizantinas [03]
so falhas tipicamente DISPONIBILIDADE
associadas comunicao entre
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

A disponibilidade pode ser vista como a probabilidade do sistema


os componentes do sistema e estar operando em um determinado instante do tempo e
essencial para que um sistema seja confivel
normalmente so causadas por
erros no detectados em algum Tanto a confiabilidade quanto a disponibilidade para sistemas
software do sistema e seus crticos so representadas na forma 99,9999% do tempo
danos nem sempre so
Na prtica, esta caracterstica indica o tempo que o sistema pode
facilmente visveis.
funcionar ininterruptamente sem ser afetado por falhas,
Conseqentemente so muito manuteno preventiva ou corretiva, etc.
mais difceis de serem
detectadas, dificultando sua
preveno e correo.

17

prof. Gregorio Perez Peiro Sistemas Distribudos


9 Conceitos de Sistemas Distribudos - Introduo

Um sistema com
Objetivos dos Sistemas Distribudos
mltiplos processadores
DESEMPENHO fracamente acoplados pode
obter um desempenho que

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


Em geral, espera-se que uma aplicao distribuda apresente um
desempenho melhor que aquele atribudo a um sistema seria impossvel em um
centralizado sistema com um
processador, uma vez que
O desempenho uma grandeza que pode ser avaliada de podem reunir uma
diferentes formas dependendo do tipo de aplicao, uma vez que
este fator desempenho pode estar associado a diferentes quantidade muito superior
conceitos ou aspectos de processadores do que um
sistema fortemente
Possveis variveis para medidas de desempenho:
acoplado, mas raramente N
Tempo de resposta do servidor processadores tem um
Throughput (nmero de jobs por unidade de tempo) desempenho N vezes maior
Quantidade de recursos consumidos pela rede que 1 processador (veja
Resultados de benchmarks escalabilidade), uma vez
18
Tempo de transmisso de dados que depende de troca de
mensagens.

Por outro lado, um sistema com N processadores custa menos do que um processador
com N vezes mais velocidade, especialmente quando possvel aproveitar mquinas
potencialmente ociosas e realizar tarefas em paralelo, aumentando o throughput do sistema.
Deste ponto de vista, os sistemas distribudos apresentam uma melhor relao de
preo/desempenho.

Objetivos dos Sistemas Distribudos

DESEMPENHO
Granularidade consis-
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Uma soluo distribuda tambm pode fazer uso de paralelismo


de execuo para melhorar o desempenho da aplicao, te na avaliao do nvel de
implicando que um determinado problema pode ser parcialmente detalhamento do com-
resolvido em diferentes mquinas do sistema simultaneamente
portamento de um elemento
que exposto. Quo mais
Neste sentido, existe diferentes nveis de paralelismo
bem detalhado o
Paralelismo de Granularidade Fina (fine-grained) comportamento do seu
objeto exposto, mais fina
Paralelismo de Granularidade Grossa (coarse-grained) sua granularidade.

19

Atualmente, a granularidade tem recebido particular ateno devido sua importncia em


SOA [11] e [12] (Arquitetura Orientada Servios) por ser um fator decisivo na definio de
uma abordagem por componentes do sistema que permite maior flexibilidade (Orientado a
Reusabilidade) ou na padronizao que permite maior produtividade (Orientado a Negcios).

prof. Gregorio Perez Peiro Sistemas Distribudos


10 Conceitos de Sistemas Distribudos - Introduo

Objetivos dos Sistemas Distribudos

DESEMPENHO E GRANULARIDADE Assim, servios com


pouco detalhamento tm

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


Paralelismo de Granularidade Fina
uma estrutura grande e,
implica em mais flexibilidade, porque h mais, pequenos
incrementos, pequenas unidades funcionais portanto, uma granularidade
grossa (coarse-grained)
Paralelismo de Granularidade Grossa tambm chamada de baixa
possui grandes pedaos de capacidade funcional como em granularidade. Os servios
grandes processos computacionais onde h poucas interaes e
poucos dados com muito detalhamento
so servios de pequena
estrutura e possuem uma
granularidade fina (fine-
grained) ou alta
granularidade.
20

Caractersticas dos Sistemas Distribudos

DESAFIOS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Em uma viso mais ampla podemos considerar que os sistemas


distribudos fazem parte do nosso dia a dia e possuem um
projeto bastante simples

Apesar dessa verdade, temos que considerar alguns tpicos que


podem ser tornar um desafio no projeto de um sistema
distribudo

Heterogeneidade
Abertura
Segurana
Transparncia
Escalabilidade
Tolerncia a Falhas
Concorrncia
21

prof. Gregorio Perez Peiro Sistemas Distribudos


11 Conceitos de Sistemas Distribudos - Introduo

Desafios
Middleware fornece
HETEROGENEIDADE um modelo computacional
uni-forme para

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


Sistemas Distribudos precisam ser construdos a partir de uma
variedade de diferentes redes, sistemas operacionais, hardware programadores. Alguns
e linguagens de programao exemplos de Middleware:

Os protocolos de comunicao, usados tipicamente na internet e


em outras redes de computadores, mascaram as diferenas CORBA prov Invocao
entre as redes e Middleware pode lidar com as outras diferenas remota de objetos o que
permite que um objeto
Middleware um termo aplicado a camadas de software que
fornecem uma abstrao de programao, bem como uma executando em um
mscara de heterogeneidade das camadas de redes, sistemas computador invocar um
operacionais, hardware e linguagens de programao
mtodo de outro objeto
executando em outro
computador. Esta imple-
22
mentao esconde o fato de
que mensagens so
transmitidas por uma rede a
fim de enviar uma
Java RMI semelhante ao modelo CORBA, a Invocao Remota requisio de invocao e
de Mtodos da linguagem prov um mecanismo de middleware sua rplica.
baseado em uma linguagem de programao nica e utiliza uma
mquina virtual (JVM) para obter um cdigo portvel. Apesar de Voltaremos a discutir a
esta soluo permitir a comunicao entre diferentes camada de Middleware em
arquiteturas, geralmente no pode ser aplicada a outras detalhes mais adiante no
linguagens de programao. curso.

Desafios
A abertura a
ABERTURA caracterstica que determina
se um sistema pode ser
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Um Sistema Distribudo aberto um sistema que oferece


servios de acordo com regras padronizadas que descrevem a estendido (ampliado) e re-
sintaxe e a semntica desses servios [04] implementado de vrias
maneiras. Em redes de
Em geral, os servios so especificados por meio de interfaces
que costumam ser descritas em uma Linguagem de Definio de computadores de modo
Interface (IDL Interface Definition Language) geral, ela expressa pela
flexibilidade obtida com a
Especificaes adequadas de interfaces devem ser completas e

utilizao dos protocolos de
neutras, caractersticas importantes para
comunicao que permitem
Interoperabilidade diferentes arquiteturas
interagirem trocando
Portabilidade mensagens. Nos sistemas
Distribudos esta abertura
23
determinada pelo grau pelo
qual novos servios de
compartilhamento de
A abertura de um sistema s obtida se a especificao e recursos podem ser
a documentao dos softwares que definem as interfaces dos adicionados e ficarem
componentes do sistema forem conhecidas e padronizadas. disponveis para uso por
Assim, esta especificaes devem ser completas significando que uma variedade de
tudo que necessrio para uma implementao foi, de fato, programas clientes.
especificado. O fato de ser neutra significa que a especificao
no define como deve ser a aparncia da implementao.

prof. Gregorio Perez Peiro Sistemas Distribudos


12 Conceitos de Sistemas Distribudos - Introduo

Conseguir grande
Desafios flexibilidade em qualquer
ABERTURA sistema exige uma
organizao em

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


Interoperabilidade caracteriza at que ponto duas
implementaes de sistemas ou componentes de fornecedores componentes pequenos de
diferentes devem coexistir e trabalhar em conjunto, com base na fcil adaptao ou
mera confiana mtua nos servios de cada um, especificados
substituio. Naturalmente,
por um padro comum
aumentar o conjunto de
Portabilidade caracteriza at que ponto uma aplicao componentes e manter a
desenvolvida para um sistema distribudo pode ser executada integridade e segurana do
em outro sistema distribudo diferente que implementa as
mesmas interfaces
sistema exige um esforo
gerencial maior que pode
Junto com estas caractersticas da abertura, desejvel que o ser conseguido separando-
sistema seja extensvel, permitindo maior flexibilidade do se a poltica (intuito do
sistema
sistema) do mecanismo
(implementao interna do
24
sistema), porm isto no
trivial.

A proteo dos
Desafios
recursos compartilhados
um dos grandes problemas SEGURANA
dos sistemas distribudos,

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


Muitas das informaes disponveis nos sistemas distribudos
uma vez que o acesso a tem um alto valor intrnseco para seus usurios, portanto sua
esses recursos deve ser segurana consideravelmente importante
facilitado para atingir seu
objetivo de A segurana para recursos de informao possui 3 componentes

compartilhamento.
Confidencialidade
Proteo contra revelao para pessoas no autorizadas
A codificao dos dados
(criptografia) pode prover Integridade
proteo adequada na Proteo contra alterao ou corrupo

transmisso dos dados,


Disponibilidade
mas ainda difcil evitar Proteo contra interferncia em relao ao acesso ao recurso
ataques como o de Recusa
25
de Servio (Denial of
Service - DoS).

Em ataques de Recusa de Servio (DoS) grandes quantidades de requisies sem sentido


so feitas a um servio de modo que um usurio que realmente necessita do servio no
consegue obt-lo.

prof. Gregorio Perez Peiro Sistemas Distribudos


13 Conceitos de Sistemas Distribudos - Introduo

Caractersticas de Sistemas Distribudos


O usurio no deve
TRANSPARNCIA ter conhecimento da
distribuio de recursos do

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


Um das principais necessidades dos Sistemas Distribudos
tornar o ambiente de rede invisvel provendo a viso de um sistema, portanto
ambiente nico para o usurio importante ocultar o fato de
que os processos e demais
Um Sistema Distribudo que capaz de se apresentar a usurios
e aplicaes como se fosse um nico sistema de computador
recursos esto fisicamente
denominado transparente distribudos. Desta forma
Tanembaum [04] no necessrio se
preocupar com o local onde
uma aplicao est instalada
O objetivo tornar certos aspectos da distribuio invisveis ao
programador de forma que ele precise se preocupar apenas com ou os detalhes de como
o projeto de sua aplicao particular. suas operaes sero
acessadas por outros
26
componentes.

Assim, os recursos que no so diretamente relevantes para a execuo de uma tarefa de


interesse num determinado instante so escondidos e passam annimos atravs da
transparncia. fcil perceber que, apesar das vantagens, a transparncia nem sempre
desejada. Veja o caso em que o usurio necessita, por exemplo, um documento impresso.
usual que o trabalho seja executado em uma impressora prxima ao usurio, sendo mais
conveniente deixar que o usurio faa a escolha dessa impressora. Na prtica, um sistema
transparente oculta alguma informao do usurio ou dos processos.

Transparncia

TIPOS De modo geral,


estes tipos de trans-
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

parncia so reco-nhe-
Transparncia Descrio
cidos pela International
Acesso Oculta diferenas na representao de dados e no modo
Organization for
de acesso Standardization (ISO)
Localizao O local do recurso desconhecido de 1995 [13], porm
Migrao e O recurso pode ser movido, inclusive enquanto est em
alguns outros tipos
podem ser conside-
Relocao uso
rados conforme o ponto
Replicao Mltiplas instncias de um recurso podem ser utilizadas
de vista aplicado pelo
para aumentar confiabilidade e desempenho sem o
estudioso, como a
conhecimento destas rplicas transparncia de
Concorrncia Vrios usurios podem compartilhar o mesmo recurso Desempenho ou
Falha A falha e a recuperao de um recurso no pode afetar
Mobilidade dada por
o sistema 27 Couloris [02].

prof. Gregorio Perez Peiro Sistemas Distribudos


14 Conceitos de Sistemas Distribudos - Introduo

Caractersticas de Sistemas Distribudos Um dos argumentos


ESCALABILIDADE que levou descentralizao
dos sistemas est vinculado

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


O aumento do desempenho em sistemas informatizados
encontra sua limitao na capacidade tecnolgica de ao fato de que sistemas
conectividade entre um grande conjunto de processadores fortemente acoplados
possuem limitao prtica
A medida que os sistemas so ampliados podem apresentar no aumento do
perda de desempenho devido s sobrecargas que so geradas no
gerenciamento do ambiente e da soluo, mas seu desempenho, pois
comprometimento pode ser impedido com uma boa arquitetura necessitam uma infra-
estrutura especial de
Um sistema cujo desempenho aumenta com o acrscimo de
hardware proporcionalmente capacidade acrescida chamado
barramento e memria para
escalvel aumentar o nmero de
processadores de forma que
no h uma boa relao de
custo e benefcio.
28

Caractersticas de Sistemas Distribudos

ESCALABILIDADE

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


A escalabilidade uma das mais importantes metas e um dos
principais argumentos em favor dos Sistemas Distribudos,
podendo ser abordada por diferentes pontos de vista:

Escalvel quanto ao tamanho


Pode-se acrescentar mais recursos e usurios ao sistema

Escalvel geograficamente
Usurios e recursos podem estar distantes uns dos outros

Escalvel Administrativamente
O sistema ainda pode ser fcil de gerenciar, mesmo abrangendo
organizaes administrativas diferentes

29

Projetar um sistema distribudo escalvel apresentar diversos desafios:

Custo dos recursos fsicos: a medida que a demanda do sistema cresce, deve ser possvel
acrescer os recursos a um custo razovel.
Perda de desempenho: com o crescimento do sistema a quantidade e distribuio dos
recursos devem aumentar, porm isso no pode gerar uma maior complexidade no
gerenciamento dos mesmos ou causar considervel reduo do desempenho.
Preveno da falta de recursos: com o crescimento dos sistemas informatizados (vide
internet e computao ubqua) muito difcil fazer uma previso das necessidade de
recursos a longo prazo.
Gargalos no sistema: se um determinado recurso for muito requisitado, a tentativa de
utilizao poder causar um gargalo de desempenho no sistema.

prof. Gregorio Perez Peiro Sistemas Distribudos


15 Conceitos de Sistemas Distribudos - Introduo

Caractersticas de Sistemas Distribudos Tipicamente obtm-se


TOLERNCIA A FALHAS a Tolerncia a falhas com a
redundncia de hardware e

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


Tolerncia a Falhas a capacidade do sistema sobreviver falha
de alguns dos seus elementos e est associado intimamente software.
transparncia de falhas, confiabilidade e disponibilidade do
sistema Se as caractersticas de
transparncia discutidas
Em sistemas distribudos, espera-se que a falha de um
componente do sistema no afete de maneira significativa a anteriormente forem
tarefa sendo realizada, isto , pode haver perda de desempenho, atingidas, possvel migrar
mas a tarefa realizada
um recurso de hardware e
software de um sistema
Questes sobre o efeito de uma falha no sistema so as mais
difceis de responder e sanar e dependem dos objetivos do para outro que esteja
sistema, bem como de sua estrutura de recursos disponvel sem o
conhecimento do usurio.

30

Questes importantes: Como o sistema vai responder falha de alguns de seus


componentes? Parte dos seus servios ficar indisponvel? Todos os servios? Os demais
componentes vo compensar as tarefas daquele que falhou? O sistema vai se tornar totalmente
intil? Se o sistema for um avio, que acontecer se um dos computadores de bordo falhar? O
que deveria acontecer? Como detectar a falha?

Caractersticas de Sistemas Distribudos

CONCORRNCIA
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Um dos grandes atrativos dos sistemas distribudos a


possibilidade de compartilhar recursos de servios e aplicativos

Este compartilhamento abre a possibilidade de que um


determinado recurso tente ser acessado por vrios clientes ao
mesmo tempo, como por exemplo o acesso aos lances em um
leilo (mercado livre, e-bay, etc...) que chaga ao limite de tempo

Limitar o recurso compartilhado a um cliente por vez resolve o


problema de concorrncia, mas tambm limita a produo do
sistema o que no desejado

Assim, usualmente sistemas distribudos permitem o acesso


concorrente dos recursos, porm comum utilizar objetos
encapsulados que assumam a responsabilidade de alguma
estrutura de sincronizao 31

prof. Gregorio Perez Peiro Sistemas Distribudos


16 Conceitos de Sistemas Distribudos - Introduo

Caractersticas de Sistemas Distribudos

ARMADILHAS

Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro


A busca por maior flexibilidade, compartilhamento de recursos,
escalabilidade, desempenho, confiabilidade, disponibilidade e
tolerncia a falhas pode causar problemas difceis ou mesmo
impossveis de serem resolvidos

H limitaes de software e tcnicas lgicas disponveis

O desempenho dependente da rede de comunicao que


interliga os elementos processadores

A conectividade cria problemas relativos segurana nos


acessos a este dados, uma vez que a maior facilidade de acesso
reduz a segurana

32

Caractersticas de Sistemas Distribudos

ARMADILHAS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro
A confiabilidade pode diminuir com o aumento do nmero de
processadores se a implementao no for adequada

A operao distribuda cria problemas de sincronizao devido


concorrncia pelo uso dos reursos podendo levar a situaes de
deadlock, starvation ou erros na computao

O desempenho do sistema pode ser afetado por um gargalo


(Bottleneck) quando as limitaes de um ou mais componentes
pode impedir que as caractersticas desejadas sejam atingidas

33

PALAVRAS FINAIS
Sistemas Distribudos SD03 v092 - prof. Gregorio Perez Peiro

Apesar da simplicidade da infra-estrutura bsica necessria para


um sistema distribudo essencialmente um ambiente de redes
se torna evidente a complexidade de sua implementao
frente aos desafios impostos

Frente a esta clara complexidade, Lamport apresentou uma


caracterizao alternativa para os sistemas distribudos:

Voc sabe que tem um Sistema Distribudo quando a falha de


um computador do qual nunca ouviu falar impede que voc faa
qualquer trabalho

Esta citao pode encontrada em:


http://research.microsoft.com/en-us/um/people/lamport/pubs/distributed-system.txt

34

prof. Gregorio Perez Peiro Sistemas Distribudos


17 Conceitos de Sistemas Distribudos - Introduo

Referncias Bibliogrficas

[01] L.Lamport, Time, Clocks and the Ordering of Events, Communications of the ACM, v 21, n 7,
Jul 78, p 558-565.
[02] G Coulouris, J Dollimore, T. Kindberg; Distributed Systems: Concepts and Design, 3 ed.
(2001) Addisson-Wesley www.cdk3.net - www.booksites.net/cdkbook
[03] L.Lamport, R.Shostak and MPease, The Byzantine Generals Problem, SRI International,
ACM Transactions on Programming Languages and Systems, Vol. 4, No 3, 1982, pages
382-40
[04] A.Tanenbaum e M.Van Steen; Sistemas Distribudos. Princpios e Paradigmas, 2 ed., Ed.
Pearson (2007)
[05] A.Silberschatz, P.Galvin, G.Gagne, Sistemas Operacionais, Conceitos e Aplicaes, 6 ed.,
Ed. Campus (2001)
[06] M.Weiser; The Computer for the 21st Century, Scientific American, pp. 94-10, September
1991 - http://www.ubiq.com/hypertext/weiser/SciAmDraft3.html
[07] M.Weiser; Some Computer Science Issues in Ubiquitous Computing, Communications of the
ACM, July 1993. (reprinted as "Ubiquitous Computing". Nikkei Electronics; December 6,
1993; pp. 137-143 - http://www.ubiq.com/hypertext/weiser/UbiHome.html
[08] Grandes Desafios da Computao no Brasil, 2006 2016; Seminrio organizado pela
Sociedade Brasileira de Computao www.sbc.org.br
[09] P.K.Sinha; Distributed Operating Systems. Concepts and Design; Ed. John Wiley (1996)
[10] R.D.Schlichting and F.B.Schneider; Fail-stop processors: an approach to designing fault-
tolerant computing systems, ACM Transactions on Computer Systems (TOCS); Volume 1,
no. 3; August 1983; pp. 222 - 238
[11] Equilbrio e Granularidade de Servios
http://aqueleblogdesoa.wordpress.com/2008/07/15/equilibrio-e-granularidade-de-servicos-
i/ (parte I) http://aqueleblogdesoa.wordpress.com/2008/07/18/equilibrio-e-granularidade-
de-servicos-ii/ (parte II)
[12] SOA Service: Coarse or Fine, Must Make a Dime!
http://blogs.sun.com/alur/entry/soa_service_coarse_or_fine
[13] International Organization for Standardization (ISO) - www.iso.org

prof. Gregorio Perez Peiro Sistemas Distribudos

Você também pode gostar