Livro Sistemas Distribuidos Principios e Paradigmas - Tanembaum 2a Ed

Você também pode gostar

Você está na página 1de 25

SISTEMAS DISTRIBUiDOS

~yt~c~~iO$ e ~CtrCt~igVVt,Ct$
Q
2 edi900

Andrew S. Tanenbaum
Maarten Van Steen

Tradu~ao
Arlete Simille Marques
Engenheira Qufmica - UFPR

Revisao Tecnica
. Wagner Luiz Zucchi
Professor doutor do Departamento de Sistemas Eletronicos da
Escola Politecnica da Universidade de Sao Paulo

PEARSON
Prentice
Hall
Sumario
Prefacio IX
1. Introducao
1.1 Defini«ao de urn sistema distribuido 1
1.2 Metas 2
1.3 Tipos de sistemas distribufdos 10
1.4 Resumo 18

2.1 Estilos arquitet6nicos 20


2.2 Arquiteturas de sistemas................................................................................................................................................................. 22
2.3 Arquiteturas versus middleware 32
2.4 Autogerenciamento em sistemas distribufdos.: 35

3.1 Threads 42
3.2 Virtual iza«ao 48
3.3 Clientes 50
3.4 Servidores 53
3.5 Migra«ao de c6digo 62
3.6 Resumo 67

4.1 Fundamentos 69
4.2 Chamada de procedimento remoto 75
4.3 Comunica«ao orientada a mensagem 84
4.4 Comunica«ao orientada a fluxo 95
4.6 Resumo 105

5.1 Nomes, identificadores e endere«os 108


5.2 Nomea«ao simples 110
5.3 Nomea«ao estruturada 118
5.4 Nomea«ao baseada em atributo 131
5.5 Resumo 137

6.1 Sincroniza«ao de rel6gios 140


6.2 Re16gios 16gicos....................................................................................................................... 147
6.3 Exclusao mutua 152
6.4 Posicionamento global de n6s 157
6.5 Algoritmos de elei«ao 159
6.6 Resumo 163

7.1 Introdu«ao 165


7.2 Modelos de consistencia centrados em dados 167
7.3 Modelos de consistencia centrados no cliente 174
7.4 Gerenciamento de replicas 178
7.5 Protocolos de consistencia 185
7.6 Resumo 191

8.1 Introdu«ao 11 tolerancia a falha 194


8.2 Resiliencia de processo 198
8.3 Comunicar;ao confiavel cliente-servidor 203
8.4 Comunicar;ao confiavel de grupo 207
8.5 Comprometimento distribuido 215
8.6 Recuperar;ao 220
8.7 Resumo 226

9.1 Introdur;ao 11 seguranr;a 228


9.2 Canais seguros 240
9.3 Controle de acesso 250
9.4 Gerenciamento da seguranr;a 259
9.5 Resumo 266

10.1 Arquitetura 268


10.2 Processos 272
10.3 Comunicar;ao 275
10.4 N omear;ao : 281
10.5 Sincronizar;ao 284
10.6 Consistencia e replicar;ao 285
10.7 Tolerancia a falba 288
10.8 Seguranr;a 291
10.9 Resumo 294

11.1 Arquitetura 296


11.2 Processos 302
11.3 Comunicar;ao 303
11.4 N omear;ao 306
11.5 Sincronizar;ao 310
11.6 Consistencia e replicar;ao 314
11.7 Tolerancia a falha 320
11.8 Seguranr;a , 322
11.9 Resumo 328

12.1 Arquitetura 330


12.2 Process os 335
12.3 Comunicar;ao 339
12.4 Nomear;ao 344
12.5 Sincronizar;ao 345
12.6 Consistencia e replicar;ao 346
12.7 Tolerancia a falha 353
12.8 Seguranr;a 354
12.9 Resumo 355

13.1 Introdur;ao a modelos de coordenar;ao 357


13.2 Arquiteturas 358
13.3 Processos 364
13.4 Comunicar;ao 364
13.5 Nomear;ao 365
13.6 Sincronizar;ao 367
13.7 Consistencia e replicar;ao 367
13.8 Tolerancia a falha 371
13.9 Seguranr;a , 374
13.10 Resumo 375

14.1 Sugest6es para leitura adicional.. 377


14.2 Bibliografia em ordem a1fabetica 382
Prefacio
Sistemas distribuidos sao uma area da ciencia da computa<;ao que esta mudando rapidamente. Nos ultimos anos vem
surgindo novos t6picos muito interessantes, como computa<;ao peer-to-peer e redes de sensores, enquanto outros
amadureceram muito, como servi<;os Web e aplica<;6es Web em geral. Mudan<;as como essas exigiram uma revisao de
nosso texto original para que ficasse atualizado.
Esta segunda edi<;ao reflete uma grande revisao em compara<;ao com a anterior. Adicionamos urn capitulo especifico
sobre arquiteturas, que reflete 0 progresso alcan<;ado na organiza<;ao de sistemas distribuidos. Vma outra diferen<;a
importante e que, agora, ha muito mais material sobre sistemas descentralizados, em particular computa<;ao peer-to-peer.
Nao nos limitamos a discutir apenas as tecnicas basicas, mas tambem demos aten<;ao as suas aplica<;6es, como
compartilhamento de arquivo, divulga<;a? de informa<;6es, redes de entrega de conteudo e sistemas publicar/subscrever.
Assim como esses dois assuntos importantes, ainda discutimos novos assuntos em todo 0 livro. Por exemplo,
adicionamos material sobre redes de sensores, virtualiza<;ao, clusters de servidores e computa<;ao em grade. Demos
aten<;ao especial ao autogerenciamento de sistemas distribuidos, urn t6pico cada vez mais importante dado 0 continuo
crescimento da escala desses sistemas.
Certamente, modemizamos 0 material on de foi adequado. Por exemplo, quando discutimos consistencia e
replica<;ao, era agora focalizamos modelos de consistencia mais apropriados para sistemas distribuidos modemos mais
do que os modelos originais, que foram talhados para computa<;ao distribuida de alto desempenho. Da mesma maneira,
adicionamos material sobre modemos algoritmos distribuidos, entre eles algoritmos de sincroniza<;ao de rel6gio e de
localiza<;ao baseados em GPS.
Embora isso nao seja comum, conseguimos reduzir 0 numero total de paginas. Essa redu<;ao e causada, em parte,
pela exclusao de assuntos como coleta distribuida de lixo e protocol os de pagamento eletr6nico, e tambem pela
reorganiza<;ao dos quatro ultimos capitulos.
Como na edi<;ao anterior, 0 livro e dividido em duas partes. Principios de sistemas distribuidos sao discutidos do
Capitulo 2 ao Capitulo 9, enquanto as abordagens globais dos modos de desenvolvimento de aplica<;6es distribufdas (os
paradigmas) sao discutidas do Capitulo 10 ao Capitulo 13. Entretanto, diferente da edi<;ao anterior, decidimos nao
discutir estudos de casos completos nos capftulos dedicados a paradigmas. Em vez disso, agora cada principio e
explicado por meio de urn caso representativo. Por exemplo, invoca<;6es de objeto sao discutidas como urn principio de
comunica<;ao no Capitulo 10 sobre sistemas distribufdos baseados em objetos. Essa abordagem nos permitiu condensar
o material, mas tambem tomou a leitura e 0 estudo mais agradaveis.
Claro que continuamos a recorrer extensivamente a prMica para explicar 0 que sao, afinal, sistemas distribufdos.
Varios aspectos de sistemas utilizados na vida real, como WebSphere MQ, DNS, GPS, Apache, Corba, Ice, NFS,
Akamai, TIBlRendezvous, Jini e muitos outros sao discutidos em todo 0 livro. Esses exemplos ilustram a tenue divisao
entre teoria e pratica, que toma a area de sistemas distribufdos tao interessante.
Muitas pessoas contribufram para este livro de divers as maneiras. Gostarfamos de agradecer em especial a
D. Robert Adams, Amo Bakker, Coskun Bayrak, Jacques Chassin de Kergommeaux, Randy Chow, Michel Chaudron,
Puneet Singh Chawla, Fabio Costa, Cong Du, Dick Epema, Kevin Fenwick, Chandana Gamage, Ali Ghodsi, Giorgio
Ingargiola, Mark Jelasity, Ahmed Kamel, Gregory Kapfhammer, Jeroen Ketema, Onno Kubbe, Patricia Lago, Steve
MacDonald, Michael J. McCarthy, M. Tamer Ozsu, Guillaume Pierre, Avi Shahar, Swaminathan Sivasubramanian,
Chintan Shah, Ruud Stegers, Paul Tymann, Craig E. Wills, Reuven Yagel e Dakai Zhu pel a leitura de partes do
manuscrito e por terem ajudado a identificar erros cometidos na edi<;ao anterior e oferecido comentarios uteis.
Por fim, gostarfamos de agradecer a nossas farmlias. Ate agora, Suzanne ja passou por esse processo dezessete
vezes. E muito para mim, mas tambem para ela. Ela nunca disse: "Agora, chega!", embora eu tenha certeza de que teve
vontade de dizer. Obrigado. Agora, Barbara e Marvin tern uma ideia muito melhor do que professores fazem para viver
e sabem quais sao as diferen<;as entre urn born e um mau livro didMico. Agora eles sao uma inspira<;ao para eu tentar
produzir mais bons do que maus livros (AST).
Como tirei uma licen<;a para atualizar 0 livro, 0 trabalho de escrever tambem ficou muito mais agradavel para
Marielle. Ela esta apenas come<;ando a se acostumar com ele, mas continua a me dar suporte e a me alertar quando e
tempo de voltar rninha aten<;ao a assuntos mais importantes. Eu the devo muito. A essa altura, Max e Elke ja tem uma
ideia muito melhor do que significa escrever um livro, porem, em cornpara<;ao com 0 que eles mesmos estao lendo,
acham diffcil entender 0 que ha de tao interessante nessas coisas estranhas que chamamos sistemas distribufdos. E eu

·
nao posso culpa-Ios (MvS).

Companion Website
0 Companion Website desta edi<;ao (www.prenhall.com/tanenbaum_br)ofereceumconjuntocompleto de apre-

i
senta<;6es em PowerPoint para auxiliar os professores a preparar suas aulas, assim como manual de solu<;6es em
ingles. Esse material pode ser acessado por meio de uma senha, e, para obte-Ia, os professores devem entrar
o •• 0 em contato com um representante Pearson ou enviar urn e-mail parauniversitarios@pearsoned.com.
'0 •
Introdu~ao
Os sistemas de computac;ao estao passando por uma o resultado dessas tecnologias e que, atualmente, nao
revoluc;ao. Desde 1945, quando comec;ou a era modem a somente e viavel, mas tambem facil, montar sistemas de
dos computadores, ate aproximadamente 1985, os com- computac;ao compostos por grandes quantidades de com-
putadores eram grandes e caros. Mesmo os minicomputa- putadores conectados por uma rede de alta velocidade.
dores custavam no minimo dezenas de milhares de d6la- Esses sistemas costumam ser denominados redes de com-
res cada. 0 resultado e que a maioria das organizac;6es putadores ou sistemas distribuidos, em comparac;ao com
tinha apenas alguns poucos computadores e, na falta de os sistemas centralizados (ou sistemas monoprocessa-
urn modo de conecta-Ios, eles funcionavam independente- dores) anteriores, que consistem em urn unico computa-
mente uns dos outros. dor, seus perifericos e, talvez, alguns terrninais remotos.
Contudo, mais ou menos a partir de meados da deca-
da de 1980, dois avanc;os tecnol6gicos comec;aram a mudar
es a situac;ao. 0 primeiro foi 0 desenvolvimento de micro-
processadores de grande capacidade. De infcio, eram 1.1 Uefini~ao de urn Sistema UistribuTdo
maquinas de 8 bits, mas logo se tomaram comuns CPUs de Varias definic;6es de sistemas distribuidos ja foram
16,32 e 64 bits. Muitas dessas CPUs tinham a capacidade dadas na literatura, nenhuma delas satisfat6ria e de acor-
de computac;ao de urn mainframe - isto e, urn grande do com nenhuma das outras. Para nossa finalidade, e sufi-
computador central-, mas por uma frac;ao do prec;o dele. ciente dar uma caracterizac;ao sem ser muito especifica:
A quantidade de melhorias que ocorreu na tecnologia
de computadores nos ultimos 50 anos e verdadeiramente
Um sistema distribufdo e
um conjunto de compu-
tadores independentes que se apresenta a seus
as ombrosa e totalmente sem precedentes em outros seto- usuarios como um sistema unico e coerente.
re . De uma maquina que custava dez milh6es de d61ares
e executava uma instruc;ao por segundo, chegamos a Essa definic;ao tern varios aspectos importantes. 0
maquinas que custam mil d61ares e podem executar urn primeiro e que urn sistema distribuido consiste em com-
bilhao de instruc;6es por segundo, urn ganho prec;o/desem- ponentes ,;to e, computadores) autonomos. Urn segundo
penho de 1013. Se os carros tivessem melhorado nessa pro- aspecto e que os usuarios, sejam pessoas ou programas,
porc;ao no mesmo periodo de tempo, urn Rolls Royce cus- acham que estao tratando com urn unico sistema. Isso sig-
taria agora urn d61ar e faria urn bilhao de milhas por galao. nifica que, de urn modo ou de outro, os componentes
(Infelizmente, e provavel que tamMm tivesse urn manual autonomos precis am colaborar. Como estabelecer essa
de 200 paginas para ensinar como abrir a porta.) colaborac;ao e 0 ceme do desenvolvimento de sistemas
o segundo desenvolvimento foi a invenc;ao de redes distribuidos. Observe que nenhuma premissa e adotada
de computadores de alta velocidade. Redes locais, ou em relac;ao ao tipo de computadores. Em principio, ate
LANs (local-area networks), permitem que centenas de mesmo dentro de urn unico sistema, eles poderiam variar
maquinas localizadas dentro de urn ediffcio sejam conec- des de computadores centrais (mainframes) de alto desem-
tadas de modo tal que pequenas quantidades de informa- penho ate pequenos n6s em redes de sensores. Da mesma
c;ao possam ser transferidas entre maquinas em alguns maneira, nenhuma premissa e adotada quanta ao modo
microssegundos, ou algo parecido. Maiores quantidades como os computadores sao interconectados. Voltaremos a
de dados podem ser movimentadas entre maquinas a esses aspectos mais adiante neste capitulo.
taxas de 100 milh6es a 10 bilh6es de bits/so Redes de Em vez de continuar com definic;6es, talvez seja
longa distancia, ou WANs (wide-area networks), per- mais util que nos concentremos em' caracterfsticas impor-
mitem que milh6es de maquinas no mundo inteiro se tantes de sistemas distribuidos. Uma caracterfstica impor-
conectem a velocidades que variam de 64 Kbits/s a giga- tante e que as diferenc;as entre os vanos computadores e 0
bits por segundo. modo como eles se comunicam estao, em grande parte,
ocultas aos usmirios. 0 mesmo vale para a organizac;ao vel colocar quatro drives de disco flexfvel em urn compu-
interna do sistema distribufdo. Uma outra caracterfstica tador pessoal. A questao e que nao teria sentido fazer isso.
importante e que uswirios e aplicac;6es podem interagir Nesta sec;ao, discutiremos quatro metas importantes que
com urn sistema distribufdo de maneira consistente e uni- devem ser cumpridas na construc;ao de urn sistema distri-
forme, independentemente de onde a interac;ao ocorra. bUldo para que valha a pen a 0 esforc;o. Urn sistema dis-
Em principio, tambem deveria ser relativamente tribuldo deve oferecer facil acesso a seus recursos; deve
facil expandir ou aumentar a escala de sistemas distribuf- ocultar razoavelmente bem 0 fato de que os recursos SaG
dos. Essa caracterfstica e uma conseqtiencia direta de ter distribufdos por uma rede; deve ser aberto e deve poder
computadores independentes, porem, ao mesmo tempo, ser expandido.
de ocultar como esses computadores realmente fazem
parte do sistema como urn todo. Em geraI, urn sistema
distribufdo estara continuamente disponfveI, embora A principal meta de urn istema distribufdo e facili-
algumas partes possam estar temporariamente avariadas. tar aos usuanos, e as aplica<;:6es, 0 acesso a recursos
Usuarios e aplicac;6es nao devem perceber quais SaG as remotos e seu compartilhamenro de maneira controlada e
partes que estao sendo substitufdas ou consertadas, ou eficiente. Os recursos podem ser muito abrangentes, mas
quais SaGas novas partes adicionadas para atender a mais entre os exemplos tfpicos estao impressoras."computado-
usuarios ou aplicac;6es. res, facilidades de armazenamento, dados, paginas Web e
Para suportar computadores e redes heterogeneos e, redes, s6 para citar alguns. Ha muitas raz6es para querer
simultaneamente, oferecer uma visao de sistema unico, os compartilhar recursos, e uma razao 6bvia e a economia.
sistemas distribufdos costumam ser organizados por meio Por exemplo, e mais barato perrnitir que uma impressora
de uma camada de software - que e situada Iogicamente seja compartilhada por diversos usuanos em urn pequeno
entre uma camada de nfvel mais alto, composta de usua- escrit6rio do que ter de comprar e manter uma impresso-
rios e aplicac;6es, e uma camada subjacente, que consiste ra direcionada a cada usuano. Do mesmo modo, em ter-
em sistemas operacionais e facilidades basicas de comu- mos econornicos, faz sentido compartilhar recursos de
nicac;ao, como mostra a Figura 1.1. Por isso, tal sistema alto custo como supercomputadores, sistemas de armaze-
distribufdo as vezes e denorninado middleware. namento de alto desempenbo, images etters e outros peri-
fericos caros.
Conectar usuarios e recursos tambem facilita a cola-
borac;ao e a troca de informac;6es, 0 que e claramente ilus-
trado pelo sucesso da Internet com seus protocolos sim-
ples para trocar arquivos, correio, documentos, audio e
vfdeo. Agora, a conectividade da Internet esta Ievando a
vanas organizac;6es virtuais nas quais grupos de pessoas
muito dispersas geograficamente trabalham juntas por
Figura 1.1 Sistema distribuido organizado como middleware. meio de groupware, isto e, software para edic;ao colabo-
A camada de middleware se estende por varias rativa, teleconferencia e assim por diante. Da mesma
maquinas e oferece a mesma interface a cada aplica<;:ao. maneira, a conecti idade da Internet possibilitou 0 comer-
e
cio eletronico, que nos perrnite comprar vender todos os
A Figura 1.1 mostra quatro computadores em rede e tipos de mercadoria sem ter de realmente ir a uma Ioja ou
tres aplicac;6es, das quais a aplicac;ao B e distribufda para ate mesmo sair de casa.
os computadores 2 e 3. A mesma interface e oferecida a Contudo, a medida que a conectividade e 0 compar-
cada aplicac;ao. 0 sistema distribufdo proporciona os tilhamento crescem, a seguranc;a se torna cada vez mais
meios para que os componentes de uma unica aplicac;ao importante. a prlitica corrente, os sistemas ofere cern
distribulda se comuniquem uns com os outros, mas tam- pouca protec;ao contra bisbilhotice ou intrusao na comu-
bem perrnite que diferentes aplicac;6es se comuniquem. nicac;ao. Senhas e outras informac;6es sensfveis muitas
Ao me mo tempo, ele ocuIta, do melhor e mais razoavel vezes sao enviadas como texto comum - isto e, nao crip-
modo po fyel. as diferenc;as em hardware e sistemas ope- tografado - pela rede, ou armazenadas em servidores
ra ionais para cada aplicac;ao. que podemos apenas esperar que sejam confiaveis. Nesse
sentido, ha muito espac;o para melhorias. Por exemplo,
hoje e posslvel fazer pedidos de mercadorias informando
apenas urn numero de cartao de credito.'Raramente e soIi-
citada uma prova de que 0 cliente seja 0 proprietario do
e er posslvel montar sistemas distribuldos cartao. No futuro, fazer pedidos desse modo s6 sera pos-
e: sariamente que essa seja uma boa slvel se voce realmente provar que possui 0 cartao em
a tecnologia corrente, tambem e possf- maos, inserindo-o em uma Ieitora de cart6es.
Urn outro problema de seguranc;a e 0 rastreamento Diferenc;as entre conven~6es de nomea~ao e tambem 0
de comunica~6es para montar urn perfil de preferencias modo como os arquivos devem ser manipulados devem
de urn usuano especffico (Wang et aI., 1998). Esse ras- ficar ocultos dos usuarios e das aplicac;6es.
treamento e uma viola~ao explicita da privacidade, em Urn importante grupo de tipos de transparencia tern
especial se for feito sem avisar 0 usmirio. Urn problema a ver com a localizac;ao de urn recurso. Transparencia de
relacionado e que maior conectividade tambem pode localiza(,;ao refere-se ao fato de que os usuarios nao
resultar em comunica~ao indesejavel, como envio de podem dizer qual e a localiza~ao fisica de urn recurso no
mala direta sem permissao, muitas vezes denominada sistema. A nomea~ao desempenha urn papel importante
spam. Nesses casos, talvez precisemos nos proteger usan- para conseguir transparencia de localizac;ao.
do filtros especiais de informa~6es que selecionam men- Em particular, pode-se conseguir transparencia de
agens de entrada com base em seu conteudo. localiza~ao ao se atribuir somente nomes logicos aos recur-
sos, isto e, nomes nos quais a localiza~ao de urn recurso
1.2.2 Transparencia da distribuicao nao esta secretamente codificada. Urn exemplo desse tipo
Uma meta importante de urn sistema distribufdo e de nome e 0 URL http://www.prenhall.com/index.html. que
ocultar 0 fato de que seus processos e recurs os estao fisi- nao da nenhuma pista sobre a localiza~ao do principal ser-
amente distribufdos por varios computadores. Urn siste- vidor Web da Prentice Hall. 0 URL tambem nao da nenhu-
ma distribufdo que e capaz de se apresentar a usuarios e ma pista se index.html sempre esteve em sua localizac;ao
aplicac;6es como se fosse apenas urn unico sistema de corrente ou se foi transferido para la recentemente. Diz-se
omputador e denominado transparente. Em primeiro que sistemas distribufdos nos quais recursos podem ser
lugar, vamos examinar quais saG os tipos de transparencia movimentados sem afetar 0 modo como podem ser acessa-
que existem em sistemas distribufdos. Em seguida, abor- dos proporcionam transparencia de migra(,;ao. Ainda
daremos a questao mais geral sobre a decisao de se a mais vantajosa e a situa~ao na qual recursos podem ser
rransparencia e sempre requerida. relocados enquanto estao sendo acessados sem que 0 usua-
rio ou a aplica~ao percebam qualquer coisa. Nesses casos,
diz-se que 0 sistema suporta transparencia de reloca(,;ao.
Urn exemplo de transparencia de reloca~ao e 0 uso movel
o conceito de transparencia pode ser aplicado a
di\'ersos aspectos de urn sistema distribuido - os mais de laptops sem fio, cujos usuarios podem continuar a usa-
importantes sao mostrados na Tabela 1.1. 10 quando vaG de urn lugar a outro sem sequer se desconec-
tar temporariamente.
Transparencia Descri~ao Como veremos, a replicac;ao desempenha urn papel
cesso Oculla diferengas na represenlagao de dados e
muito importante em sistemas distribuidos. Por exemplo,
no modo de acesso a um recurso recursos podem ser replicados para aumentar a disponibili-
LocaJizagao Oculla 0 lugar em que um recurso esla localizado dade ou melhorar 0 desempenho colocando uma copia
Migragao Oculla que um recurso pode ser
perto do lugar em que ele e acessado. Transparencia de
movido para oulra localizagao replica(,;ao esta relacionada a ocultar 0 fato de que existem
Relocagao Oculla que um recurso pode ser movido para vanas copias de urn recurso. Para ocultar a replica~ao dos
uma oulra localizagao enquanto em uso usuanos, e necessario que todas as replicas tenham 0 mes-
Replicagao Oculla que um recurso e replicado mo nome. Por conseqiiencia, urn sistema que suporta trans-
Concorrencia Oculla que um recurso pode ser comparlilhado
parencia de replicac;ao em geral tambem deve suportar
por diversos usuarios concorrenles transparencia de localizac;ao porque, caso contrano, seria
Falha Oculla a falha e a recuperagao de um recurso
impossivel referir-se a replicas em diferentes localiza~6es.
Ja mencionamos que uma importante meta de siste-
Tabela 1.1 Diferentes formas de transparencia em um sistema mas distribufdos e perrnitir compartilhamento de recur-
distribufdo (ISO. J 995). sos. Em muitos casos, esse compartilhamento e coopera-
tivo, como no caso da comunicac;ao. Todavia, tambem ha
Transparencia de acesso trata de ocultar diferenc;as muitos exemplos de compartilhamento competitivo de
em representa~ao de dados e 0 modo como os recursos recursos. Urn deles pode ser 0 caso de dois usuarios inde-
podem ser acessados por usuarios. Em urn nivel basico, pendentes, em que cada urn pode ter armazenado seus
desejamos ocultar diferen~as entre arquiteturas de maqui- arquivos no mesmo servidor de arquivosou pode acessar
nas, porem 0 mais importante e chegar a urn acordo sobre as mesmas tabelas em urn banco de dados compartilhado.
como os dados devem ser representados por maquinas e Nesses casos, e importante que tada usuario nao perceba
sistemas operacionais diferentes. Por exemplo, urn siste- que 0 outroesta utilizando 0 mesmo recurso. Esse feno-
ma distribuido pode ter sistemas de computac;ao que exe- meno e denominado transparencia de concorrencia.
cutam sistemas operacionais diferentes, cada urn com Uma questao importante e que 0 aces so concorrente a urn
suas proprias conven~6es para nomea~ao de arquivos. recurso compartilhado deixe esse recurso em estado con-
sistente. Pode-se conseguir consistencia por meio de tra- servidor antes de tentar urn outro pode reduzir a velocidade
vas de acesso, 0 que da a cada usuario, urn por vez, aces- do sistema como urn todo. Nesse caso, talvez seja melhor
so exclusivo ao recurso desejado. Urn mecanismo mais desistir mais cedo ou, ao menos, perrnitir que 0 usuario
refinado e utilizar transa~oes; porem, como veremos em cancele as tentativas para fazer contato.
capftulos posteriores, e bastante diffcil implementar tran- Urn outro exemplo e 0 de precisar garantir que varias
sa~oes em sistemas distribufdos. replicas, localizadas em continentes diferentes, devam ser
Uma defini~ao alternativa e popular de urn sistema consistentes 0 tempo todo. Em outras palavras, se uma
distribufdo, devida a Leslie Lamport, e "Voce sabe que tern c6pia for alterada, essa altera~ao deve ser propagada para
urn quando a falha de urn computador do qual nunca ouviu todas as c6pias antes de perrnitir qualquer outra opera~ao.
falar impede que voce fa~a qualquer trabalho". Essa des- E claro que, agora, uma unica opera~ao de atualiza~ao
cri~ao pontua uma outra questao importante no projeto de pode demorar ate alguns segundos para ser conclufda,
sistemas distribufdos: como tratar falhas. Fazer com que algo que nao pode ser ocultado dos usuanos.
urn sistema distribufdo seja transparente a falha signifi- Por fim, ha situa~oes em que nao e nem urn pouco
ca que urn usuario nao percebe que urn recurso (do qual 6bvio que ocultar distribui<;ao seja uma boa ideia. A medi-
possivelmente nunc a ouviu falar) deixou de funcionar bem da que sistemas distribufdos estao se expandindo para dis-
e que, subseqiientemente, 0 sistema se recupero.u da falha. positivos que as pessoas carregam consigo, e a pr6pria
Mascarar falhas e uma das questoes mais diffceis em sis- no~ao de localiza~ao e percep~ao de contexto esta se tor-
temas distribufdos e ate mesmo impossfveis de se realizar nando cada vez mais importante, pode ser melhor expor
quando sao adotadas certas prernissas aparentemente rea- a distribui~ao em vez de tentar oculta-la. Essa exposi~ao
listas, como discutiremos no Capftulo 8. A principal difi- de distribui~ao ficara mais evidente quando discutirmos
culdade para mascarar falhas esta na incapacidade de dis- sistemas distribufdos embutidos e ubfquos neste capftulo.
tinguir entre urn recurso morto e urn recurso insuportavel- Como urn exemplo simples, considere uma funcionana
mente lento. Por exemplo, quando contatamos urn servidor que quer imprimir urn arquivo que esta em seu notebook.
Web ocupado, a certa altura 0 tempo do browser se esgo- E melhor enviar 0 trabalho a ser impressa a uma impres-
tara e ele avisara que a pagina Web nao esta disponfvel. sora ocupada que esta pr6xima do que a uma desocupada
Nesse ponto, 0 usuario nao pode concluir se, na verdade, localizada na sede corporativa em urn pafs diferente.
o servidor esta avariado. Tambem ha outros argumentos contra a transparen-
cia de distribui<;ao. Reconhecendo que a total transparencia
de distribui~ao e simples mente impossfvel, devemos nos
Embora a transparencia de distribui~ao seja geral- perguntar se e ate mesmo sensato dissimular que pode-
mente considerada preferfvel para qualquer sistema distri- mos alcan~a-la. Talvez seja muito melhor tornar a distri-
bufdo, ha situa~oes em que tentar ocultar completamente bui<;ao explfcita, de modo que 0 usuano e 0 desenvolvedor
dos usuanos todos os aspectos da distribui~ao nao e uma de aplica~ao nunca sejam levados a acreditar que existe
boa ideia. Urn exemplo e requisitar que seu jornal eletro- uma coisa denorninada transparencia. 0 resultado sera
nico apare~a em sua caixa postal antes das 7 horas da que os usuarios entenderao de maneira mais clara 0 com-
manha, hora local, como sempre, enquanto naquele portamento, as vezes inesperado, de urn sistema distribuf-
momenta voce esta no outro lado do mundo, onde 0 fuso do e, por isso, estarao mais bem preparados para lidar
horario e diferente. Seu jornal matutino nao seraaquele ao com esse comportamento.
qual voce esta acostumado. A conclusao e que visar a transparencia de distribui-
Da mesma maneira, nao se pode esperar que urn sis- <;aopode ser uma bela meta no projeto e na implementa-
tema distribufdo de longa distancia que conecta urn pro- ~ao de sistemas distribufdos, mas deve ser considerada em
cesso em San Francisco a urn processo em Amsterda conjunto com outras questoes, como desempenho e faci-
oculte 0 fato de que a Mae Natureza nao permitira que ele lidade de compreensao. Nem sempre vale a pen a tentar
envie uma mensagem de urn processo para 0 outro em conseguir total transparencia, pois 0 pre~o que se paga
menos do que aproximadamente 35 milissegundos. Na por is so pode ser surpreendentemente alto.
pratica, quando se esta usando uma rede de computado-
res, isso levara varias centenas de rnilissegundos. A trans-
rnissao de sinal nao somente esta lirnitada pela velocidade Uma outra meta importante de sistemas distribufdos
da luz, mas tambem pelas capacidades de processamento e a abertura. Urn sistema distribuido aberto e urn siste-
dos comutadores intermedianos. ma que oferece servi~os de acordo com regras padroniza-
Tambem ha urn comprornisso entre urn alto grau de das que descrevem a sintaxe e a semantica desses servi-
transparencia e 0 desempenho de urn sistema. Por exem- ~os. Por exemplo, em redes de computadores ha regras
plo, muitas aplica~oes de Internet tentam contatar urn ser- padronizadas que governam 0 formato, 0 conteudo e 0
vidor repetidas vezes antes de finalmente desistir. Por significado de mensagens enviadas e recebidas. Tais
conseqiiencia, tentar mascarar uma falha transit6ria de regras sao formalizadas em protocolos. No caso de siste-
mas distribufdos, em geral os servic;os sao especificados Separacao entre porrtica e mecanismo
por meio de interfaces, que costumam ser descritas em
Para conseguir flexibilidade em sistemas distribuf-
uma lingua gem de defini~ao de interface (Interface
dos abertos, e crucial que 0 sistema seja organizado como
Definition Language - IDL).
urn conjunto de componentes relativamente pequenos e
Definic;6es de interfaces escritas em IDL quase sem-
de facil substituic;ao ou adaptac;ao. Isso implica que deve-
pre capturam apenas a sintaxe de servic;os. Em outras
mos fomecer definic;6es nao somente para as interfaces de
palavras, elas especificam com precisao os nomes das
nfvel mais alto, isto e, as que sao vistas por usuarios e
func;6es que estao disponfveis, junto com os tipos dos
aplicac;6es, mas tambem definic;6es para interfaces com
parametros, os valores de retorno, as possfveis excec;6es
partes internas do sistema, alem de descrever como essas
que podem surgir e assim por diante. A parte diffcil e
partes interagem.
especificar com precisao 0 que esses servic;os fazem, isto
Essa abordagem e relativamente nova. Muitos siste-
e, a semantica das interfaces. Na pnitica, tais especifica-
mas mais antigos, ou mesmo alguns contemporaneos, sao
c;6es sao sempre dadas de modo informal por meio de lin-
construfdos segundo uma abordagem monolftica na qual a
guagem natural.
separac;ao dos componentes e apenas logica, embora eles
Se adequadamente especificada, uma definic;ao de
sejam implementados como urn unico e imenso programa.
interface permite que urn processo arbitrario que necessi-
Essa abordagem dificulta a substituic;ao ou adaptac;ao de
ta de certa interface se comunique com urn outro proces-
urn componente sem afetar todo 0 sistema. Portanto, siste-
so que fornece aquela interface. Pennite tambem que duas
mas monolfticos tendem a ser fechados em vez de abertos.
partes independentes construam implementac;6es compl~-
A necessidade de alterar urn sistema distribufdo e
tamente diferentes dessas interfaces, 0 que resulta em dOlS
quase sempre causada por urn componente que nao forne-
sistemas distribufdos separados que funcionam exatamen-
ce a polftica ideal para uma aplicac;ao ou usuario especf-
te do mesmo modo.
fico. Por exemplo, considere a cache na World Wide Web.
Especificac;6es adequadas sao completas e neutras.
Em geral, os browsers permitem que os usuarios adaptem
Completa significa que tudo que e necessario para uma
sua polftica de cache especificando 0 tamanho da cache e
implementac;ao foi, de fato, especificado. Contudo,
se a consistencia de urn documento em cache deve ser
muitas definic;6es de interface nao sao absolutamente
verificada sempre ou se apenas uma vez por sessao.
completas, portanto e necessario que urn desenvolvedor
Contudo, 0 usuario nao pode influenciar outros parame-
adicione detalhes especfficos da implementac;ao. De
tros de cache, como 0 perfodo que urn documento pode
igual importancia e 0 fato de que especificac;6es nao
permanecer na cache, ou qual documento deve ser retira-
prescrevem como deve ser a aparencia da implementa-
do quando a cache estiver cheia. Alem disso, e impossfvel
c;ao; elas devem ser neutras. Completude e neutralidade
tomar decis6es de cache com base no conteudo de urn
sao importantes para interoperabilidade e portabilidade
documento. Urn usuario pode querer manter em cache
(Blair e Stefani, 1998).
uma tabela de horarios de trens porque sabe que esses
Interoperabilidade caracteriza ate que ponto duas
horarios dificilmente mudam, mas nunca as informac;6es
implementac;6es de sistemas ou componentes de for.nece-
sobre as condic;6es de trafego correntes nas rodovias.
dores diferentes devem coexistir e trabalhar em conJunto,
Precisamos de uma separac;ao entre polftica e meca-
com base na mera confianc;a mutua nos servic;os de cada
nismo. No caso de cache na Web, por exemplo, 0 ideal
urn, especificados por urn padrao comum ..
seria que urn browser proporcionasse facilidades apenas
Portabilidade caracteriza ate que ponto uma aplica-
para armazenar documentos e, ao mesmo tempo, pennitis-
c;ao desenvolvida para urn sistema distribufdo A pode ser
se aos usuarios decidir quais documentos teriam de ser
executada, sem modificac;ao, em urn sistema distribufdo
armazenados e por quanta tempo. Na pr<itica, isso pode ser
diferente B que implementa as mesmas interfaces que A.
implementado pela oferta de urn rico conjunto de parame-
Uma outra meta importante para urn sistema distri-
tros que 0 usuario pode estabelecer dinamicamente.
bufdo aberto e que deve ser facil configura-Io com base
Ainda melhor e que urn usuario possa implementar
em co~ponentes diferentes (possivelmente de desenvol-
sua propria polftica sob a forma de urn componente que
vedores diferentes). Alem disso, deve ser facil adicionar
possa ser conectado diretamente ao browser. Claro que
novos componentes ou substituir os existentes sem afetar
esse componente deve ter uma interface que 0 browser
os que continuam no mesmo lugar. Em outras palavras,
possa entender, de modo que ele possa chamar procedi-
urn sistema distribufdo aberto deve ser tambem extensf-
mentos dessa interface.
vel. Por exemplo, em urn sistema extensfvel, deve ser
relativamente facil adicionar partes que sao executadas
em urn sistema operacional diferente, ou ate mesmo subs-
tituir todo urn sistema de arquivo. Como muitos de nos A conectividade mundial pela Internet esta rapida-
sabemos por experiencia propria, e mais facil falar do que mente se tornando tao comum quanta poder enviar urn
conseguir tal flexibilidade. cartao-postal para qualquer pessoa em qualquer lugar do
mundo. Com isso em mente, a escalabilidade e uma das Tao ruins quanta servic;os centralizados sac dados
mais importantes metas de projeto para desenvolvedores centralizados. Como nao perder de vista os numeros de
de sistemas distribuidos. telefones e enderec;os de 50 milh6es de pessoas? Suponha
A escalabilidade de urn sistema pode ser medida que cada registro de dados pudesse caber em 50 caracte-
segundo, no minima, tres dimens6es diferentes (Neuman, res. Vma unica partic;ao de disco de 2,5 gigabytes propor-
1994). Em primeiro lugar, urn sistema pode ser escahivel cionaria armazenamento suficiente. Porem, mais uma vez,
em relac;ao a seu tamanho, 0 que significa que e facil adi- nesse caso, ter urn unico banco de dados sem duvida satu-
cionar mais usuarios e recursos ao sistema. Em segundo raria todas as linhas de comunicac;ao que 0 acessam. Do
lugar, urn sistema escalavel em termos geograficos e urn mesmo modo, imagine como a Internet funcionaria se seu
sistema no qual usuarios e recursos podem estar longe uns Sistema de Nomes de Dominio (Domain Name System-
dos outros. Em terceiro lugar, urn sistema pode ser esca- DNS) ainda estivesse implementado como uma tabela
lavel em termos administrativos, 0 que significa que ele unica. 0 DNS mantem informac;6es de milh6es de compu-
ainda pode ser facil de gerenciar, mesmo que abranja mui- tadores no mundo inteiro e forma urn servic;o essencial
tas organizac;6es administrativas diferentes. Infelizmente, para localizar servidores Web. Se cada requisic;ao para
urn sistema escalavel em uma ou mais dessas dimens6es resolver urn VRL tivesse de ser passada para aquele unico
muitas vezes apresenta perda na capacidade de qesempe- servidor DNS, e claro que ninguem estaria usando a Web
nho a medida que e ampliado. - 0 que, por falar nisso, resolveria 0 problema.
Por fim, algoritmos centralizados tambem sac ma
ideia. Em urn sistema distribuido de grande porte, uma
Quando e necessario arnpliar urn sistema, e precise quantidade enorrne de mensagens tern de ser roteada por
resolver problemas de tipos muito diferentes. Em pri- muitas linhas. De urn ponto de vista te6rico, urn born
meiro lugar, vamos considerar a escalabilidade em rela- modo de fazer isso e colher informac;6es completas sobre
c;ao ao tamanho. Se for precise suportar mais usuarios a carga em todas as maquinas e linhas, e entao executar
ou recursos, freqiientemente deparamos com as limita- urn algoritmo para computar todas as rotas 6timas. Em
c;6es de servic;os centralizados, dados e algoritmos (ver seguida, essa informac;ao pode ser propagada por todo 0
Tabela 1.2). Por exemplo, muitos servic;os sac centrali- sistema para melhorar 0 roteamento.
zados no sentido de que sac implementados por meio de o problema e que colher e transportar todas as infor-
apenas urn unico servidor que executa em uma maquina mac;6es de entrada e saida tambem seria ma ideia porque
especifica no sistema distribuido. 0 problema com esse essas mensagens sobrecarregariam parte da rede. Na ver-
esquema e 6bvio: 0 servidor pode se transformar em urn dade, qualquer algoritmo que colha informac;6es de todos
gargalo a medida que 0 numero de usuarios e aplicac;6es os sites, envie-as a uma unica maquina para processamen-
cresce. Ainda que tenhamos capacidades de process a- to e entao distribua os resultados para todos os sites deve
mento e armazenagem praticamente ilimitadas, a comu- ser, de maneira geral, evitado. Somente algoritmos des-
nicac;ao com aquele servidor acabara por impedir cresci- centralizados devem ser utilizados. Em geral, esses algo-
mento ulterior. ritmos tern as seguintes caracteristicas, que os distinguem
Infelizmente, as vezes e inevitavel usar apenas urn dos algoritmos centralizados:
unico servidor. Imagine que temos urn servic;o para geren- I. Nenhuma maquina tern informac;6es completas
ciar informac;6es altamente confidenciais como hist6ricos sobre 0 estado do sistema.
medicos, contas de bancos e assim por diante. Nesses 2. As maquinas tomam decis6es tendo como base
casos, talvez seja melhor implementar 0 servic;o por meio somente informac;6es locais.
de urn unico servidor localizado em uma sala separada, de 3. A falha de uma maquina nao arruina 0 algoritmo.
alta seguranc;a, e protegido em relac;ao as outras partes do 4. Nao ha nenhuma premissa implicita quanta a
sistema distribuido por meio de componentes de rede existencia de urn re16gio global.
especiais. Copiar 0 servidor para divers as 10calizac;6es
para melhorar 0 desempenho pode estar fora de questao As tres primeiras decorrem do que dissemos ate agora.
porque isso tornaria 0 servic;o menos seguro. A ultima talvez seja menos 6bvia, mas tambem e importan-
te. Qualquer algoritmo que comece com "Precisamente as
Conceito Exemplo 12:00:00 todas as maquinas anotarao 0 tamanho de sua fila
Servi90s centralizados Um Ii.nico servidor para lodos os usuarios de saida" falhara porque e impossivel conseguir a exata sin-
cronizac;ao de todos os rel6gios, fato que os algoritmos
devem levar em conta. Quanto maior.o sistema, maior a
Algoritmos centralizados Fazer roteamento com base em incerteza. Talvez seja possivel conseguir a sincronizac;ao de
informa90es com pi etas todos os re16gios com tolerancia de alguns microssegundos
em uma unica LAN, com consideravel esforc;o, mas fazer
isso em escala nacional ou internacional e complicado.
A escalabilidade geognifica tern seus pr6prios pro- flitantes em rela<;ao a utiliza<;ao - e pagamento - de re-
blemas. Vma das principais raz6es por que hoje e diffcil cursos, gerenciamento e seguran<;a.
ampliar sistemas distribufdos existentes que foram origi- Muitas vezes, por exemplo, os usuarios de urn unico
nalmente projetados para redes locais e que eles saG dominio podem confiar em componentes de urn sistema
baseados em cornunica~ao sincrona. Nessa forma de distribufdo que residam dentro desse mesmo dominio. Em
omunica<;ao, uma parte que requisita urn servi<;o, em tais casos, a administra<;ao do sistema deve ter testado e
geral denominada cliente, fica bloqueada ate que uma certificado aplica<;6es e tornado providencias especiais
mensagem seja enviada de volta. Essa abordagem costuma para garantir que os componentes nao sofram nenhuma
funcionar bem em LANs nas quais a comunica<;ao entre a<;aoindevida. Em essencia, os usuarios confiam em seus
duas maquinas, na pior das hip6teses, demora, comumen- administradores de sistema. Contudo, essa confian<;a nao
te, algumas centenas de microssegundos. Todavia, em urn ultrapassa naturalmente as fronteiras do domfnio.
i tema de longa distancia, precisamos levar em conta que Se urn sistema distribufdo se expandir para urn outro
a comunica<;ao entre processos pode demorar centenas de domfnio, e preciso tomar duas medidas de seguran<;a.
milissegundos, isto e, ela e tres ordens de grandeza mais Antes, 0 sistema distribufdo tern de se proteger contra ata-
lenta. Construir aplica<;6es interativas usando comunica- ques maliciosos do novo domfnio: os usuarios do novo
~o sfncrona em sistemas de longa distanciarequer muito domfnio podem ter somente acesso de leitura ao sistema
uidado, alem de muita paciencia. de arquivos no novo dominio original. Da mesma forma,
Urn outro problema que atrapalha a escalabilidade facilidades como imagesetters CarOSou computadores de
geografica e que a comunica<;ao em redes de longa distan- alto desempenho podem nao estar disponfveis para usua-
ia e inerentemente nao confiavel e quase sempre ponto a rios estranhos. Em segundo lugar, 0 novo dominio tern de
ponto. Por compara<;ao, redes locais em geral proporcio- se proteger contra ataques maliciosos do sistema distribuf-
nam facilidades de comunica<;ao de alta confian<;a com do. Urn exemplo tfpico e 0 download de programas como
ase em broadcast, 0 que facilita muito 0 desenvolvimen- applets em browsers Web. Basicamente, 0 novo dominio
'0 de sistemas distribufdos. Considere 0 problema de nao sabe que comportamento esperar de tal c6digo estra-
ocalizar urn servi<;o. Em urn sistema de area local, urn nho e, portanto, pode decidir impor lirnites severos aos
rocesso pode simplesmente enviar uma mensagem direitos de acesso para esse c6digo. 0 problema, como
broadcast a todas as maquinas, perguntando a cada uma veremos no Capftulo 9, e como impor essas limita<;6es.
e esta executando 0 servi<;o de que ele necessita. Somen-
te as maquinas que tern aquele servi<;o respondem, cada
uma delas fornecendo seu endere<;o de rede na mensagem Ap6s discutirmos alguns problemas de escalabilida-
de resposta. Tal esquema de localiza<;ao e inconcebfvel de, surge a questao de como resolve-los de maneira geral.
em urn sistema de longa distancia: imagine s6 0 que acon- Na maioria dos casos, problemas de escalabilidade em sis-
teceria se tentassemos localizar urn servi<;o desse modo temas distribufdos aparecem como problemas de des em-
na Internet. Em vez disso, e preciso projetar servi<;os penho causados por capacidade limitada de servidores e
especiais de localiza<;ao, que talvez tenham alcance mun- rede. Agora, ha basicamente apenas tres tecnicas para
dial e sejam capazes de atender a bilh6es de usuarios. ampliar sistemas: ocultar latencias de comunica<;ao, distri-
Voltaremos a abordar esses servi<;os no Capftulo 5. bui<;ao e replica<;ao [ver tambem Neuman (1994)].
A escalabilidade geografica esta forte mente relacio- Ocultar latencias de comunica<;ao e importante para
nada com problemas de solu<;6es centralizadas que atra- conseguir escalabilidade geografica. A ideia basica e sim-
palham a escalabilidade de tamanho. Se tivermos urn sis- ples: tentar evitar, 0 quanta possfvel, esperar por respos-
tema com muitos componentes centralizados, e claro que tas a requisi<;6es remotas - e potencialmente distantes -
a escalabilidade geografica estara limitada pelos proble- de servi<;os. Vamos supor que urn servi<;o seja requisitado
mas de desempenho e confiabilidade resultantes da comu- em uma maquina remota. Uma alternativa a esperar por
nica<;ao a long a distancia. Alem disso, nessa circunstancia uma resposta do servidor e executar outro trabalho Util no
os componentes centralizados resultarao em desperdfcio lado do requisitante. Em essencia, is so significa construir
de recursos de rede. Imagine que urn unico servidor de a aplica<;ao requisitante de modo tal que ela use s6 cornu-
correio seja usado por urn pafs inteiro. Isso significaria nica~ao assincrona. Quando chega uma resposta, a apli-
que, quando voce enviasse urn e-mail aseuvizinho.pri- ca<;aoe interrompida e urn manipulador especial e chama-
meiro 0 e-mail teria de ir ate 0 servidor central de correio, do para concluir a requisi<;ao emitida anteriormente.
que poderia estar a qui16metros de distancia. Claro que A comunica<;ao asslncrona muitas vezes pode serusada
esse nao e 0 melhor caminho. em sistemas de processamento de.lotes e em aplica<;6espara-
Por fim, uma questao diffcil e, em muitos casos, ainda lelas, nos quais tarefas mais ou menos independentes podem
aberta e como ampliar urn sistema distribufdo por vanos ser escalonadas para execu<;ao enquanto uma outra tarefa
dominios administrativos independentes. Urn problema esm esperando pela conclusao da comunica<;ao. Como alter-
irnportante que precisa ser resolvido e 0 de polfticas con- nativa, pode-se iniciar urn novo thread de controle para exe-
cutar a requisi<;ao. Embora ele fique bloqueado it espera da devolva urn formulario completo, como mostra a Figura
resposta, outros threads no processo podem continuar. 1.2(b). Essa abordagem de despacho de c6digo atualmen-
Colltudo, ha muitas aplica<;6es que nao podem fazer te e amplamente suportada pela Web sob a forma de
uso efetivo da comunica<;ao assfncrona. Por exemplo, em applets Java e Javascript.
aplica<;6es interativas, quando urn usuano envia uma requi- Uma outra tecnica irnportante de amplia<;ao e a distri-
si<;ao, em geral ele nao ten! nada melhor a fazer do que bui\;ao. A distribui<;ao envolve tomar urn componente, sub-
esperar pela resposta. Nesses casos, uma solu<;ao muito dividi-Io em partes menores e, na sequencia, espalhar essas
melhor e reduzir a comunica<;ao global, passando parte da partes pelo sistema. Urn excelente exemplo de distribui<;ao
computa<;ao que normalmente e executada no servidor para eo Sistema de Nomes de Dornfnio da Internet. 0 espa<;o de
o processo do cliente que esta requisitando 0 servi<;o. nomes do DNS e organizado por hierarquia em uma arvo-
Urn caso tfpico em que essa abordagem funciona e 0 re de dominios, dividida em zonas sem sobreposi<;ao,
acesso a bancos de dados por meio de formularios. 0 como mostra a Figura 1.3. Os nomes em cada zona saG
preenchimento de formularios pode ser feito com 0 envio manipulados por urn linico servidor de nomes. Sem entrar
de uma mensagem separada para cada campo e a espera em muitos detalhes, podemos imaginar cada nome de
por urn reconhecimento do servidor, como mostra a carninho como 0 nome de urn hospedeiro na Internet e, por
Figura 1.2(a). 0 servidor pode verificar se ha enos de sin- isso, associado a urn endere<;o de rede daquele hospedeiro.
taxe antes de aceitar uma entrada. Basicamente, resolver urn nome significa retornar 0
Uma solu<;ao muito melhor e despachar para 0 clien- endere<;o de rede do hospedeiro associado. Considere, por
te 0 c6digo para preencher 0 formulario e possivelmente exemplo, 0 nome nl.vu.cs.flits. Para resolver esse nome, pri-
verificar as entradas, alem de fazer com que 0 cliente meiro ele e passado ao servidor de zona 21 (ver Figura 1.3),

Primeiro nome IMAARTEN I


Ultimo nome IVAN STEEN I
ISTEEN@CS.VU.NL I

[Q]

Verifique Processe
formulario formulario

IMAARTEN I
IVAN STEEN I •..
ISTEEN@CS.VU.NL I
[Q]
I ~
.•...
,
'1f
, ••\
Venflque Processe
formulario formulario
reloma 0 enderec;o do servidor para a zona Z2, para a todas as outras c6pias. Alem do mais, se duas atualizac;6es
o resto do nome, vu.cs.flits, pode ser entregue. 0 servi- ocorrerem ao mesmo tempo, freqiientemente tambem e exi-
tJaIa Z2 retomara 0 enderec;o do servidor para a zona Z3, gida a atualizac;ao de cada c6pia na mesma ordem.
e paz de manipular a ultima parte do nome e retoma- Situac;6es como essa em geral requerem algum meca-
enderec;o do hospedeiro associado. nismo de sincronizac;ao global. Infelizmente, e extrema-
E e exemplo ilustra como 0 servi({o de nomea({iio mente diffcil ou ate impossivel implementar esses meca-
= ecido pelo DNS e distribufdo por varias maquinas, nismos de modo escalavel porque as leis da fisica insistem
_ 'rando, desse modo, que urn unico servidor tenha de em que os f6tons e os sinais eletricos obedec;am a um limi-
om todas as requisic;6es de resoluc;ao de nomes. te de velocidade de 3 X 108 m/s (a velocidade da luz). Por
Como outro exemplo, considere a World Wide Web. conseqiiencia, ampliar urn sistema por replicac;ao pode
a maioria dos usuarios, a Web parece ser urn enorme introduzir outras soluc;6es inerentemente nao escalaveis.
~ma de informac;6es baseado em documentos, no qual Voltaremos a replicac;ao e a consistencia no Capitulo 7.
documento tern seu pr6prio nome exclusivo sob a Ao considerarmos essas tecnicas de ampliac;ao de
.: a de urn URL. Em termos de conceito, pode ate pare- escala de urn sistema, poderiamos argumentar que a esca-
__• que ha apenas um unico servidor. Entretanto, a Web e labilidade de tamanho e a menos problematica do ponto
- ' amente distribufda por urn grande numero de servido- de vista tecnico. Em muitos casos, 0 simples aumento da
~-. e cad a urn deles manuseia certa quantidade de docu- capacidade de uma maquina resolvera a questao, ao
mo da Web. 0 nome do servidor que manuseia urn menos temporariamente, e talvez a custos significativos.
umento esta codificado no URL do documento. A escalabilidade geografica e um problema muito mais
- mente grac;as a essa distribuic;ao de documentos e que diffcil, porque e a Mae Natureza que esta atrapalhando.
: i po sivel aumentar a Web ate seu tamanho atual. ~inda assim, a pratica mostra que combinar tecnicas de
Considerando que problemas de escalabilidade fre- distribuic;ao, replicac;ao e cache com diferentes formas de
- memente aparecem sob a forma de degradac;ao do consistencia costuma ser suficiente em muitos casos.
mpenho, em geral e uma boa ideia replicar componen- Por fim, escalabilidade administrativa parece ser a
por urn sistema distribuido. A replicac;ao nao somente mais diffcil, em parte porque tambem precisamos resolver
3llIIlenta a disponibilidade, mas tambem ajuda a equilibrar a problemas que nao sao tecnicos (como polfticas de organi-
carga entre componentes, 0 que resulta em melhor desem- zac;6es e colaborac;ao humana). Nao obstante, houve pro-
penho. AIem disso, em sistemas de ampla dispersao geogra- gresso nessa area simplesmente ignorando dominios
-ca ter uma c6pia por perto pode ocultar grande parte dos administrativos. A introduc;ao, e agora a utilizac;ao, disse-
roblemas de latencia de comunicac;ao ja mencionados. minada de tecnologia peer-to-peer demonstra 0 que pode
Cache e uma forma especial de replicac;ao, embora ser conseguido se os usuanos finais sirnplesmente toma-
muitas vezes a distinc;ao entre as duas seja diffcil de com- rem 0 controle (Aberer e Hauswirth, 2005; Lua et aI.,
reender ou ate mesmo artificial. Como no caso da repli- 2005; Oram, 2001). Contudo, vamos deixar claro que, na
,ao, a cache resulta em fazer uma c6pia de urn recurso, melhor das hip6teses, a tecnologia peer-to-peer pode ser
em geral na proximidade do aces so do cliente aquele apenas uma soluc;ao parcial para a escalabilidade adminis-
recurso. Entretanto, ao contrario da replicac;ao, a cache e trativa. Mas, em algum momento, teremos de tratar dela.
uma decisao tomada pelo cliente de um recurso, e nao por
eu proprietario. Alem disso, a cache acontece sob de-
manda, ao passo que a replicac;ao costuma ser planejada Agora ja deve estar claro que desenvolver sistemas
amecipadamente. distribuidos pode ser uma tarefa dificflima. Como vere-
Tanto a cache quanta a replicac;ao tern uma seria des- mos muitas vezes em todo este livro, ha tantas quest6es a
\'antagem que pode causar efeitos adversos na escalabili- considerar ao mesmo tempo que parece poder ser apenas
dade. Como nessa circunstancia temos varias c6pias de a complexidade 0 unico resultado. Mesmo assim, seguin-
urn recurso, se uma del as for modificada, ficara diferente do alguns princfpios de projeto, podem-se desenvolver
das outras. Por conseqiiencia, cache e replicac;ao resultam sistemas distribuidos que cumpram a risca as metas que
em problemas de consistencia. estabelecemos neste capitulo. Muitos princfpios seguem
Ate que ponto as inconsistencias podem ser toleradas as regras basicas da engenharia decente de software e nao
depende em grande palte da utilizac;ao de urn recurso. serao repetidos aqui.
:YIuitosusuanos da Web acham aceitavel que seus browsers Contudo, sistemas distribuidos sao diferentes do
retomem urn documento em cache cuja validade nao tenha software tradicional porque os componentes estao disper-
ido verificada nos ultirnos minutos passados. Contudo, tam- sos por uma rede. Nao levaf" essa dispersao em conta
bem ha muitos casos em que e preciso cumprir fortes garan- durante 0 projeto e 0 que toma tantos sistemas desneces-
tias de consistencia, tal como no caso de bolsas de valores e sariamente complexos e resulta em erros que precisam ser
leil6es eletr6nicos. 0 problema com a forte consistencia e consertados mais tarde. Peter Deutsch, que, na epoca, tra-
que uma atualizac;ao deve ser imediatamente propagada para balhava na Sun Microsystems, formulou esses erros como
as seguintes premissas falsas que todos ado tam ao desen- a distin~ao entre sistemas de computa~ao distribufdos,
volver uma aplica~ao distribufda pela primeira vez: sistemas de informa~ao distribufdos e sistemas embuti-
dos distribufdos.
1. A rede e confiavel.
2. A rede e segura.
3. A rede e homogenea.
1.3.1 Sistemas de computacao distribuTdos
4. A topologia nao muda. Uma classe importante de sistemas distribufdos e a
5. A latencia e zero. utilizada para tarefas de computa~ao de alto desempenho.
6. A largura de banda e infinita. Em termos estritos, podemos fazer uma distin~ao entre
7. 0 custo de transporte e zero. dois subgrupos. Na computal;ao de cluster, 0 hardware
B. Ha so urn administrador. subjacente consiste em urn conjunto de esta~6es de traba-
lho ou PCs semelhantes, conectados por meio de uma
Observe como essas premissas se referem a proprie-
rede local de aHa velocidade. Alem disso, cada no execu-
dades exclusivas de sistemas distribufdos: confiabilidade, ta 0 mesmo sistema operacional.
seguran~a, heterogeneidade e topologia da rede; latencia
A situa~ao fica bem diferente no caso da computa-
e largura de banda; custos de transporte e,por fim, domf- l;ao em grade. Esse subgrupo consiste em sistemas distri-
nios administrativos. No desenvolvimento de aplica~6es bufdos que costumam ser montados como federa~ao de
nao distribufdas, e provavel que a maioria dessas quest6es computadores, na qual cada sistema pode cair sob urn
nem apare~a. domfnio administrativo diferente, e pode ser muito dife-
A maior parte dos princfpios que discutimos neste rente no que tange a hardware, software e tecnologia de
livro esta imediatamente relacionada a essas premissas. rede empregada.
Em todos os casos, discutiremos solu~6es para problemas
causados pelo fato de uma ou mais premissas serem fal- Sistemas de computacao de cluster
sas. Por exemplo, redes confiaveis simples mente nao
Sistemas decomputa~ao de cluster tornaram-se
.existem, 0 que leva a impossibilidade de conseguir trans-
populares quando a razao pre~o/desempenho de computa-
parencia a falha. Dedicaremos urn capftulo inteiro para dores pessoais e esta~oes de trabalho melhorou. A certa
tratar do fato de que a comunica~ao por rede e inerente- altura ficou atraente, em termos financeiros e tecnicos,
mente insegura. Ja discutimos que sistemas distribufdos construir urn supercomputador que usasse tecnologia de
precisam levar em conta a heterogeneidade. N a mesma prateleira simplesmente conectando uma serie de compu-
toada, quando discutimos replica~ao para resolver proble- tadores relativamente simples a uma rede de aHa velocida-
mas de escalabilidade, estamos, em essencia, atacando de. Em quase todos os casos, a computa~ao de cluster e
problemas de latencia e largura de banda. Tambem abor- usada para programa~ao paralela na qual urn unico progra-
daremos quest6es de gerenciamento em varios pontos ma, intensivo em computa~ao, e executado em paralelo em
desta obra, tratando das falsas premissas do transporte a varias maquinas.
custo zero e de urn unico domfnio administrativo. Urn exemplo bem conhecido de urn computador de
cluster e formado pelos clusters Beowulf baseados em
Linux, cuja configura~ao geral e mostrada na Figura 1.4.
Cada cluster consiste em urn conjunto de nos de compu-
1.3 Tipos de Sistemas OistribuTdos ta~ao controlados e acessados por meio de urn unico no
Antes de come~armos a discutir os princfpios de sis- mestre. As tarefas tfpicas do mestre sao manipular a alo-
temas distribufdos, vamos examinar com maior aten~ao ca~ao de nos a urn determinado programa paralelo, man-
os varios tipos de sistemas distribufdos. A seguir faremos ter uma fila de jobs apresentados e proporcionar uma

Aplicac;:ao de Componente Componente Componente


gerenciamento da da da
aplicac;:ao aplicac;:ao aplicac;:ao .
paralela paralela paralela

Rede de
acesso remoto
- - -e para as usuarios do sistema. Assim, na verdade, ten cern a mesma organiza~3oo virtual tern direitos de aces-
executa a middleware necessaria para a execu- so aos recurs as fomecidos par aquela organiza~ao. Entre
rogramas e a gerenciamento do cluster, ao passo os recursos tipicos estao servidares de computa~ao (entre
os nos de computa~3oo, muitas vezes basta um eles supercomputadores, possivelmente implementados
operacional padr300e nada mais. como computadores de cluster), facilidades de armazena-
L IDa parte importante desse middleware e formada menta e bancos de dados. Alem disso, tambem podem ser
- - bibliotecas para execu~3oo de programas paralelos. oferecidos equipamentos especiais em rede, como teles-
discutiremos no Capitulo 4, na realidade, muitas des- capias, sensores e outros.
liotecas fomecem somente facilidades avan~adas de Dada a sua natureza, grande parte do software para
-calf3.opor mensagem, mas n300SaGcapazes de mani- realizar computa~3oo em grade e desenvolvida com a fina-
seguran~a, processos com falhas e assim par diante. lidade de prover aces so a recursos de diferentes dominios
Como altemativa para essa organiza~3oo hierarquica, administrativos, e somente para usuarios e aplica~5es que
ma Mosix adota uma abordagem simetrica (Amar perten~am a uma organiza~3oo virtual especffica. Par essa
__ 004). Esse sistema tenta prover uma imagem de raz3oo,a foco costuma ser dirigido as quest5es de arquite-
~:teInaUnico de urn cluster, a que significa que, para um tura. Uma arquitetura proposta par Foster et al. (2001) e
0, urn computadar de cluster oferece a transparen- mostrada na Figura 1.5.
~ di tribui~3oodefinitiva porque parece ser um tinico A arquitetura consiste em quatro camadas. A mais
~mador. Como ja mencionamos, e impossivel propar- baixa, denominada camada-base, prove interfaces para
£a1 irnagem sob todas as circunstancias. No caso do recursos locais em urn site especffico. Observe que essas
_ ~ six .. 0 alto grau de transparencia e conseguido com a interfaces S300projetadas para permitir compartilhamento
p=:CIl15- ;S3oO de uma forma din arnica e preventiva de migra- de recurs as dentro de uma arganiza~ao virtual. A tarefa
"- de processos entre os nos que comp6em 0 cluster. tipica dessas interfaces e prover fun~5es para consultar 0
A migray300de processos permite que urn usumo ini- estado e as capacidades de urn recurso, em conjunto com
~ rrma aplica~ao em qualquer no (denominado no nativo), fun~5es para 0 gerenciamento de recursos propriamente
~ -- 0 que ele pode se mover transparentemente para outros dito. Par exemplo: travar recursos.
- a fun de, par exemplo, fazer usa eficiente de recursos. A camada de conectividade consiste em protocolos de
mas a migra~ao de processos no Capitulo 3. comunica~3oo para suportar transa~5es da grade que abran-
jam a utiliza~3oode mtiltiplos recursos. Par exemplo, S300
as de computa~ao em grade necessmos protocolos para transferir dados entre recursos,
Urn aspecto caracterfstico da computa~ao de cluster au para a simples acesso de urn recurso desde uma locali-
_ _ bomogeneidade. Na maioria dos casos, os computa- za~3ooremota. Alem disso, a camada de conectividade con-
- '- que comp6em urn cluster s3oo,em grande parte, as tera protocolos de seguran~a para autenticar usumos e
-esmos, todos tern a mesmo sistema operacional e todos recursos. Observe que, em muitos casas, usumos humanos
_ -0 onectados a mesma rede. Par compara~3oo, sistemas n300sao autenticados; em vez disso, S300autenticados pro-
~ omputac:;ao em grade tern alto grau de heterogeneida- gramas que agem em nome dos usumos. Nesse sentido,
c:~: nenhuma premissa e adotada em rela~ao a hardware, delegar direitos de urn usumo a programas e uma fun~3oo
-.-=-Dmas operacionais, redes, dominios administrativos, importante que precisa ser suportada na camada de conec-
- liricas de seguran~a e assim par diante. tividade. Daremos mais detalhes sabre a delega~3ooquando
Uma questao fundamental em urn sistema de compu- discutirmos seguran~a em sistemas distribuidos.
~~o em grade e que recursos de diferentes organiza~6es A camada de recursos e responsavel pelo gerenciamen-
-" reunidos para permitir a colabara~3oo de urn grupo de to de urn tinico recurso. Ela utiliza as fun~5es fomecidas pela
?S oas au institui~6es. Tal colabora~3oo e realizada sob a camada de conectividade e chama diretamente as interfaces
:orma de uma organiza~ao virtual. As pessoas que per- disponibilizadas pela camada-base. Par exemplo, essa cama-

Aplicac;:6es
-J-
da ofereceni funr;oes para obter informar;oes de configurar;ao clientes. Esses clientes podiam enviar uma requisir;ao ao
sobre urn recurso especffico ou, em geral, para realizar ope- servidor para executar uma operar;ao especffica e depois
rar;oes especfficas como criar urn processo ou ler dados. receber uma resposta que era devolvida. Integrar;ao no
Portanto, a camada de recurs os e considerada responsavel nivel mais baixo perrnitiria que clientes empacotassem
pelo controle de acesso e, por isso, dependera da autentica- vanas requisir;oes, possivelmente para diferentes servido-
r;ao realizada como parte da camada de conectividade. res, em uma unica requisir;ao maior, e as enviassem para
A camada seguinte na hierarquia e a camada coleti- execur;ao como uma transa"ao distribuida. A ideia funda-
va. Ela trata de manipular 0 acesso a multiplos recursos e mental era que todas as - ou nenhuma das - requisir;oes
normalmente consiste em servir;os para descoberta de seriam executadas.
recursos, alocar;ao e escalonamento de tarefas para multi- A medida que as aplicar;oes se tornavam mais sofistica-
pIos recursos, replicar;ao de dados e assim por diante. das e eram gradualmente separadas em componentes inde-
Diferentemente das camadas de conectividade e de recur- pendentes, notavelmente distinguindo componentes de
sos, que consistem em urn conjunto padronizado e relati- banco de dados de componentes de processamento, ficou
vamente pequeno de protocol os, a camada coletiva pode claro que a integrar;ao tambem deveria ocorrer de modo que
consistir em muitos protocolos diferentes para muitas perrnitisse as aplicar;oes se comunicar diretamente urnas
finalidades diferentes, que reflitam 0 amplo' espectro de com as outras. Isso resultou, atualmente, em uma enorme
servir;os que ela pode oferecer a uma organizar;ao virtual. industria dedicada a integra"ao de aplica"oes empresariais
Por fim, a camada de aplica~iio consiste em aplica- (Enterprise Application Integration - EAI). A seguir,
r;oes que funcionam dentro de uma organizar;ao virtual e abordaremos essas duas formas de sistemas distribuidos.
que fazem uso do ambiente de computar;ao em grade.
Normalmente, as camadas coletiva, de conectividade
e de recursos formam 0 cerne daquiloque poderia ser Para deixar nossa discussao mais clara, vamos nos
denorninado camada de middleware em grade. Em conjun- concentrar em aplicar;oes de banco de dados. Na pratica,
to, essas camadas dao aces so e gerenciam recursos que operar;oes em urn banco de dados costumam ser realizadas
estao potencialmente dispersos por vanos sites. Vma sob a forma de transa"oes. Programar a utilizar;ao de tran-
observar;ao importante da perspectiva do rniddleware e sar;oes requer prirnitivas especiais que devem ser forneci-
que, com a computar;ao em grade, a nor;ao de urn site (ou das pelo sistema distribuido subjacente ou pelo sistema de
unidade administrativa) e comum. Essa prevalencia e enfa- linguagem em tempo de execur;ao. Exemplos tipicos de
tizada pela tendencia gradual a migrar;ao para uma arqui- primitivas de transar;ao saG mostrados na Tabela 1.3.
tetura orientada a servi"os na qual sites oferer;am aces- A lista exata de prirnitivas depende dos tipos de obje-
so as vacias camadas por meio de urn conjunto de servir;os tos que estao sendo usados na transar;ao (Gray e Reuter,
Web (Joseph et aI., 2004). 1993). Em urn sistema de correio, poderia haver primitivas
A essa altura, is so nos levou a definir;ao de uma arqui- para enviar, receber e repassar correio. Em urn sistema de
tetura alternativa conhecida como arquitetura de servi"os contabilidade, elas poderiam ser bastante diferentes.
de grade aberta (Open Grid Services Architecture - Entretanto, READ e WRITE saG exemplos tipicos. Decla-
OGSA). Essa arquitetura consiste em varias camadas e rar;oes ordinarias, chamadas de procedimento e assim par
muitos componentes, 0 que a torna bastante complexa. A diante, tambem saG perrnitidas dentro de uma transar;ao.
complexidade parece ser 0 destino de qualquerprocesso de Em particular, mencionamos que chamadas a procedimen-
padronizar;ao. Detalhes sobre a OGSA podem ser encon- tos remotos (Remote Procedure Calls - RPCs), isto e,
trados em Foster et al. (2005). chamadas de procedimento em servidores remotos, tam-
bem costumam ser encapsuladas em uma transar;ao, 0 que
1.3.2 Sistem~sde inform~c~o distribuldos resulta no que e conhecido como RPC transacional.
Vma outra classe importante de sistemas distribui- Discutiremos RPCs rninuciosamente no Capitulo 4.
dos e encontrada em organizar;oes que se defrontaram
Primitiva Descri~ao
com uma profusao de aplicar;oes em rede para as quais a
BEGIN_TRANSACTION Marque 0 infcio de uma transa930
interoperabilidade se mostrou uma experiencia dolorosa.
Muitas das solur;oes de rniddleware existentessao resul- END_TRANSACTION Termine a transa930 e tente
compromete-Ia
tado do trabalho com uma infra-estrutura na qual era mais
facil integrar aplicar;oes a urn sistema de informar;oes de ABORT_TRANSACTION Elimine a transa930 e restaure
os valores antigos
ambito empresarial (Bernstein, 1996; Alonso et aI., 2004).
READ Leia dados de um arquivo, tabela
Podemos distinguir vanos niveis nos quais ocorreu a
ou de outra forma
integrar;ao. Em muitos casos, uma aplicar;ao em rede con-
WRITE Escreva dados para um arquivo,
sistia simples mente em urn servidor que executava aquela tabela ou de outra forma
aplicar;ao, freqtientemente incluindo urn banco de dados, e
a disponibilizava para programas remotos, denorninados
BEGIN_TRANSACTION e END_TRANSACTION Ate aqui, transa<;6es foram definidas em urn unico
- usadas para delimitar 0 escopo de uma transa<;ao. As banco de dados. Uma tranSal;aO aninhada e construida
<;6esentre elas formam 0 corpo da transa<;ao. 0 aspec- com base em uma quantidade de subtransa<;6es, como
caracteristico de uma transa<;ao e que todas essas opera- mostra a Figura 1.6. A transa<;ao do nivel mais alto pode
sao executadas ou nenhuma e executada. Elas podem se ramificar e gerar 'filhos' que executam em paralelo uns
:cr procedimentos de biblioteca, chamadas de sistema ou aos outros em maquinas diferentes para obter ganho de
-l lara<;6esentre parenteses em uma linguagem, dependen- desempenho ou simplificar a programa<;ao. Cada urn des-
do cia implementa<;ao. ses filhos tambem pode executar uma ou mais subtransa-
Essa propriedade tudo-ou-nada das transa<;6es e uma <;6es ou se ramificar e gerar seus pr6prios filhos.
quatro propriedades caracteristicas que elas tern. Mais
especificamente, transa<;6es sao:
1. Atomicas: para 0 mundo exterior, a transa<;ao acon-
Subtransa9aO I Subtransa9ao I
tece como se fosse indivisivel.
2. Consistentes: a transa<;ao nao viola invariantes de
sistema.
3. Isoladas: transa<;6es concorrentes hao interferem
U U·
Bancos de d~dos da\ ( Bancos de dados do hotel
umas com as outras. companhla aerea . \

4. Duniveis: uma vez comprometida uma transa<;ao, Dois bancos de dados diferentes (independentes)

as altera<;6es sao permanentes.


Essas propriedades costumam ser citadas por suas
letras iniciais: ACID. SUbtransa<;6es dao origem a urn problema sutil, porem
A primeira propriedade fundamental exibida par importante. Imagine que uma transa<;ao inicia varias sub-
rodas as transa<;6es e que elas sao atOmicas. Essa proprie- transa<;6es em paralelo e uma delas se compromete, tornan-
dade garante que cada transa<;ao aconte<;a completamen- do seus resultados visiveis a transa<;ao-pai. Ap6s mais com-
re, ou nao aconte<;a; e, se acontecer, sera como uma unica puta<;ao, a transa<;ao-pai e abortada, restaurando todo 0 sis-
a<;ao indivisivel e instantfmea. Enquanto uma transa<;ao tema ao estado em que estava antes que a transa<;ao do
esta em progresso, outros processos, estejam ou nao en- nivel mais alto come<;asse. Por consequencia, os resultados
volvidos em transa<;6es, nao podem ver nenhum dos esta- da subtransa<;ao que se comprometeu devem ser anulados.
dos intermediarios. Portanto, a permanencia que citamos anteriormente se apli-
A segunda propriedade afirma que elas sao consis- ca somente as transa<;6es do nivel mais alto.
tentes. Isso quer dizer que, se 0 sistema tiver certos inva- Visto que transa<;6es podem ser aninhadas ate uma
riantes que devem valer sempre, se eles forem validos profundidade arbitraria, e preciso consideravel adminis-
antes da transa<;ao, tambem 0 serao ap6s a transa<;ao. Par tra<;ao para conseguir que tudo esteja correto. No entanto,
exemplo, em urn sistema bancario, urn invariante funda- a semantica e clara. Quando qualquer transa<;ao ou sub-
mental e a lei da conserva<;ao do dinheiro. Ap6s toda transa<;ao come<;a, ela recebe, em termos conceituais, uma
transferencia interna, a quantidade de dinheiro no banco c6pia privada de todos os dados presentes no sistema
tern de ser a mesma que era antes da transferencia; contu- inteiro, a qual pode manipular como desejar. Se ela abor-
do, por urn breve instante durante a transa<;ao, esse inva- tar, seu universo privado desaparece como se nunca tives-
riante pode ser violado. Todavia, a viola<;ao nao e visivel se existido. Se ela se comprometer, seu universo privado
fora da transa<;ao. substitui 0 universo do pai. Assim, se uma subtransa<;ao
A terceira propriedade diz que as transa<;6es sao iso- estiver comprometida e mais tarde for iniciada uma nova
ladas ou serializaveis. Isso significa que, se duas ou mais sUbtransa<;ao, a segunda ve os resultados produzidos pela
transa<;6es sao executadas ao mesmo tempo, 0 resultado primeira. Da mesma farma, se uma transa<;ao do nivel
final para cada uma del as e para outros processos se apre- mais alto abortar, todas as suas subtransa<;6es subjacentes
sentara como se todas as transa<;6es fossem executadas tambem tern de ser abortadas.
em sequencia em certa ordem, dependente do sistema. Transa<;6es aninhadas sao importantes em sistemas
A quarta propriedade diz que as transa<;6es sao distribuidos porque proporcionam urn modo natural de
duraveis. Refere-se ao fato de que, nao importa 0 que distribuir uma transa<;ao por varias maquinas. Elas
aconte<;a, uma vez comprometida uma transa<;ao, ela con- seguem uma divisao 16gica do trabalho da transa<;ao ori-
tinua, e os resultados tornam-se permanentes. Nenhuma ginal. Par exemplo, uma trans.a<;ao para 0 planejamento
falha ap6s 0 comprometimento pode desfazer os resulta- de uma viagem pela qual e preciso reservar tres voos pode
dos ou provocar sua perda. ser subdividida logicamente em ate tres subtransa<;6es.
A durabilidade sera discutida minuciosamente no Cada uma dessas subtransa<;6es pode ser gerenciada em
Capitulo 8. separado e independentemente das outras duas.
Quando os sistemas de middleware empresarial co- Existem varios tipos de middleware de comunica-
me9aram, 0 componente que manipulava transa90es dis- 9ao. Com chamadas de procedimento remoto (Remote
tribuidas, ou aninhadas, formava 0 nueleo para a integra- Procedure Calls - RPC), urn componente de aplica9ao
9ao de aplica90es no nivel do servidor ou do banco de pode efetivamente enviar uma requisi9ao a urn outro com-
dados. Esse componente era denominado monitor de ponente de aplica9ao executando uma chamada de proce-
processamento de transa~ao, ou, de forma abreviada, dimento local, que resulta no empacotamento da requisi-
monitor TP. Sua principal tarefa era permitir que uma 9ao como uma mensagem e em seu envio ao chamador.
aplica9ao acessasse varios servidoresfbancos de dados Da mesma forma, 0 resultado sera enviado de volta e
oferecendo a ela urn modelo de programa9ao transacio- devol vido a aplica9ao como 0 resultado da chamada de
nal, como mostra a Figura 1.7. procedimento.
A medida que a popularidade da tecnologia de obje-
to aumentava, foram desenvolvidas tecnicas que permitis-
Como ja mencionamos, quanta mais as aplica90es se sem chamadas a objetos remotos, 0 que resultou naquilo
desvinculavam dos bancos de dados sobre os quais eram que denominamos invoca~oes de metodo remoto
construidas, mais evidente ficava que eram necessarias (Remote Method Invocations - RMI). Vma RMI e, em
facilidades para integrar aplica90es indepenqentemente essencia, 0 mesmo que uma RPC, exceto que fun cion a
de seus bancos de dados. Em particular, componentes de com objetos em vez de com aplica90es.
aplica9ao deveriam poder se comunicar diretamente uns A desvantagem da RPC e da RMI e que ambos, 0
com os outros, e nao apenas par meio do comportamento chamador e 0 chamado, precisam estar ligados e em fun-
de requisi9ao/resposta que era suportado por sistemas de cionamento no momenta da comunica9ao. Alem disso,
processamento de transa90es. eles precis am saber exatamente como se referir urn ao
Essa necessidade de comunica9ao entre aplica90es outro. Esse forte acoplamento muitas vezes e percebido
resultou em muitos modelos diferentes de comunica9ao como uma seria desvantagem e resultou no que conhece-
que seriio discutidos minuciosamente neste livro - por mos como middleware orientado a mensagem ou, sim-
essa razao, por enquanto faremos aqui apenas uma breve plesmente, MOM (Message-oriented Middleware).
descri9ao. A principal ideia era que aplica90es existentes Nesse caso, as aplica90es apenas enviam mensagens a
pudessem trocar informa90es diretamente, como mostra pontos 16gicos de contato, que frequentemente sao descri-
a Figura 1.8. tos por meio de urn sujeito. Da mesma forma, as aplica-

Aplicagao
c1iente

Aplicagao Aplicagao
c1iente cliente

Aplicagao Aplicagao Aplicagao


dolado dolado dolado
servidor servidor servidor
_- . podem indicar seu interesse por urn tipo especifico possivelmente conectando-se a uma outra rede, ou toman-
nsagem, apos 0 que 0 middleware de comunica<;ao do outras providencias adequadas.
, para que todas as mensagens sejam entregues a Incentivar composi<;ao ad hoc refere-se ao fato de que
- - aplicac;:6es. Esses sistemas, denominados publi- muitos dispositivos em sistemas pervasivos serao utilizados
subscrever, formam uma classe impOltante e em de modos muito diferentes por usuarios diferentes. 0 resul-
ao de sistemas distribuidos. Nos os discutiremos tado e que a configurac;:ao do conjunto de aplicac;:6es que
iosamente no Capitulo 13. executa em urn dispositivo, seja pelo usuario, seja por inter-
posic;:aoautomatizada, porem control ada, tern de ser facil.
Sistemas distribuTdos pervasivos Urn aspecto muito importante de sistemas pervasivos
e que, em geral, os dispositivos se juntam ao sistema para
o sistemas distribuidos que discutimos ate aqui sao,
acessar - e possivelmente fornecer - informac;:6es. Isso
grande parte, caracterizados por sua estabilidade: os
requer meios para ler, armazenar, gerenciar e comparti-
- _ ·-0 fixos e tern uma conexao mais ou menos perma-
Ihar informac;:ao com facilidade. A luz da conectividade
~ e de aHa qualidade com uma rede. Ate certo ponto,
interrnitente e em constante mutac;:ao dos dispositivos, e
-- e tabilidade tern sido conseguida por meio de varias
muito provavel que 0 espac;:ono qual res idem informac;:6es
- • <lS que sao discutidas neste livro e que visam a obter
acessiveis mudara 0 tempo todo.
-parencia de distribuic;:ao. Urn exemplo: a profusao de
Mascolo et al. (2004) bem como Niemela e Latvakoski
• <lS para mascarar falhas e recuperac;:ao dani a
(2004) chegaram a conclus6es semelhantes: na presenc;:ade
i::;;;;tm~ss;ao de que as coisas podem dar errado apenas rara-
mobilidade, dispositivos devem suportar a adaptac;:ao facil
e. Da mesma maneira, conseguimos ocultar aspectos
e dependente de aplica<;ao a seu ambiente local. Tambem
_ cionados com a real localizac;:ao de urn no na rede, 0
devem ser capazes de descobl1r servic;:oscom eficiencia e
__ -z perrnite, efetivamente, que usuarios e aplicac;:6es acre-
reagir de acordo. Considerando esses requisitos, a esta altu-
- ~m que os nos continuam onde estao.
ra ja ficou claro que, na realidade, nao existe transparencia
Contudo, a questao ficou muito diferente com a intro-
de distribuic;:aoem sistemas pervasivos. De fato, a distribui-
- .·0 de dispositivos de computac;:ao moveis e embutidos.
<;aode dados, process os e controle e inerente a esses siste-
-~ente encontramos sistemas distribuidos nos quais a
mas, razao par que talvez seja melhor tao-somente expor a
-0 ilidade e 0 comportamento esperado. Nesses siste-
distribui<;ao, em vez de oculta-Ia. Vamos estudar, agora,
- que denominamos sistemas distribuidos pervasi-
alguns exemplos concretos de sistemas pervasivos.
o equipamentos costumam ser caracterizados por seu
- • enD tamanho, pela alimentac;:ao par bateria, por sua
ilidade e por terem somente uma conexao sem fio, se
que nem todas essas caracteristicas se aplicam a todos Urn tipo cada vez mais popular de sistema pervasi-
. . positivos. Alem do mais, tais caracterfsticas nao pre- vo, mas que talvez seja 0 menos restrito, sao sistemas
er necessariamente interpretadas como restritivas, montados ao redor de redes domesticas. Em geral, esses
o e ilustrado pelas possibilidades dos modernos smart sistemas sao compostos de urn ou mais computadores
ne (Roussos et aI., 2005). pessoais. Porem, 0 mais importante e que integram ele-
Como seu nome sugere, urn sistema distribuido per- tronicos de consumo tipicos como aparelhos de TV, equi-
~-n·o e parte de nosso entorno; por isso, e, em geral, ine- pamentos de audio e video, dispositivos parajogos, smart
~ mente distribuido. Urn aspecto importante e a ausen- phones, PDAs e outros equipamentos de uso pessoal em
_ . geral de controle administrativo humano. Na melhor urn tinico sistema. Alem disso, podemos esperar que
~ bipoteses, os dispositivos podem ser configurados por todos os tipos de dispositivos, como eletrodomesticos de
proprietarios; porem, quanta ao mais, eles precis am cozinha, camaras de vigiHincia, relogios, controladores
.: - obrir automaticamente seu ambiente e 'se encaixar' 0 de iluminac;:ao e assim por diante, serao conectados a urn
-=lhor que puderem. Grimm et al. (2004) tornaram esse tinico sistema distribuido.
=- aixar' mais exato pela formulac;:ao dos tres requisitos Da perspectiva de sistema, ha varios desafios que pre-
aplicac;:6es pervasivas apresentados a seguir: cisam ser enfrentados antes que os sistemas pervasivos
domesticos se tornem realidade. Urn desafio importante e
1. Adotar mudanc;:as contextuais.
que tal sistema deve ser completamente autoconfiguravel
2. Incentivar composic;:ao ad hoc.
e autogerenciavel. Nao se pode esperar que usuarios finais
3. Reconhecer compartilhamento como padrao.
estejam dispostos ou sejam capazes de manter urn sistema
Adotar mudanc;:as contextuais significa que urn dis- distribuido domestico ligado e em funcionamento se seus
- -itivo deve estar continuamente ciente do fato de que componentes forem propensos a erros, como acontece
_0::1 ambiente po de mudar 0 tempo todo. Uma das mudan- com muitos dos dispositivos existentes hoje.
~.- mais simples e descobrir que uma rede nao esta mais Muito ja foi conseguido por meio dos padr6es
-sponlvel porque urn usuario esta se movimentando Universal Plug and Play (UPnP), pelos quais dispositivos
estac;:6es-bases. Nesse caso, a aplicac;:ao deve reagir, obtem automaticamente enderec;:osIF, pod em descobrir uns
aos outros e assim por diante (UPnP Forum, 2003). Contu- os dispositivos pessoais fIcarao repletos de inforrnac,;6es
do, e precise mais. Por exemplo, nao esta claro como 0 dimas necessmas, mas sua capacidade de armazenamen-
software e 0 fIrmware presentes em dispositivos podem ser to nunca se esgotara.
atualizados com facilidade sem intervenc,;ao manual, ou Contudo, ter armazenamento sufIciente nao resolve
quando ocorrem as atualizac,;6es, de modo que a compatibi- o problema do gerenciamento de espac,;os pessoais. Ser
lidade com outros dispositivos nao seja violada. capaz de armazenar enormes quantidades de dados muda
Vma outra questao premente e 0 gerenciamento da- o problema para 0 armazenamento de dados relevantes e
quilo que e conhecido como urn espafo pessoal. Reco- para a capacidade de acha-Ios mais tarde. Cada vez mais
nhecendo que urn sistema domestico consiste em muitos veremos sistemas pervasivos, como redes domesticas,
dispositivos compartilhados, bem como pessoais, e que os equipados com 0 que denorninamos recomendadores,
dados em urn sistema domestico tambem estao sujeitos a programas que consultam 0 que os outros usuarios arma-
restric,;6es de compartilhamento, muita atenc,;aoe dedicada zenaram, de modo a identifIcar gostos semelhantes e, na
a percepc,;ao desses espac,;os pessoais. Por exemplo, parte sequencia, deduzir qual conteudo colocar no espac,;opes-
do espac,;opessoal de Alice pode consistir em sua agenda, soal de alguem. Vma observac,;ao interessante e que a
fotos da familia, urn diario, musicas e videos que ela com- quantidade de informac,;6es de que os programas reco-
prou etc. Esses ativos pessoais devem ser armazenados de mendadores necessitam para fazer seu trabalho costuma
maneira que Alice tenha acesso a eles sempre que desejar. ser pequena 0 sufIciente para permitir que sejam exe-
Alem disso, partes desse espac,;o pessoal devem estar - cutados em PDAs (Miller et aI., 2004).
temporariamente - acessiveis a outros, como no caso de
ela precisar participar de uma reuniao de neg6cios.
Felizmente, as coisas podem fIcar mais simples. Ha Vma outra classe de sistemas pervasivos importante e
muito tempo considera-se que espac,;ospessoais relaciona- que esta comec,;ando a fazer sucesso e a relacionada ao tra-
dos com sistcmas domestic os sac inerentemente distribui- tamento eletronico (pessoal) de saude. Com 0 aumento do
dos por varios dispositivos. E 6bvio que tal dispersao custo do tratamento medico, estao sendo desenvolvidos
podera resultar facilmente em problemas de sincroniza- novos dispositivos para monitorar 0 bem-estar de indivi-
c,;ao. Todavia, esses problemas podem ser amenizados duos e entrar automaticamente em contato com medicos
devido ao rapido crescimento da capacidade de discos quando necessario. Em muitos desses sistemas, uma meta
rigidos, aliado a reduc,;aode seu tamanho. ConfIgurar uma importante e evitar que as pessoas sejam hospitalizadas.
unidade de armazenamento de varios terabytes para urn Sistemas para tratamentos de saude costumam ser
computador pessoal nao e, realmente, urn problema. equipados com varios sensores organizados em uma rede
Da mesma maneira, discos rfgidos port::iteis com de area corporal (Body-area Network - BAN), de prefe-
capacidade de centenas de gigabytes estao sendo coloca- rencia sem fIo. Vma questao importante e que, na pior das
dos dentro de reprodutores de midia port::iteis relativamen- hip6teses, tal rede deve incomodar uma pessoa 0 minimo
te pequenos. Com 0 crescimento continuo dessas capaci- possiveI. Com essa fInalidade em vista, a rede deve ser
dades, e possivel que logo vejamos sistemas pervasivos capaz de funcionar quando a pessoa estiver em movimen-
domestic os adotarem uma arquitetura na qual uma unica to, sem que esta precise estar presa por fIos eletricos a dis-
maquina funcionara como mestra (e fIcara escondida em positivos irn6veis.
algum lugar do porao, perto do aquecimentocentral) e Esse requisito resulta em duas organizac,;6es 6bvias,
todos os outros dispositivos fIxos sirnplesmente oferecerao como mostra a Figura 1.9. Na primeira, urn hub central e
uma interface conveniente para os seres humanos. Entao, parte da BAN e colhe dados conforrne necessario. Esses

/
,, /
,,
/
, /
/

Sensor de inclira9ao \
I
'\\ Armazenamento
\
I I
I \ I " externo
\

U
Sensor do ECG Transmissor
\ ,
PDA I
I I

I
\
) ~PRS/UM;S
Sensores "
de movimento
\
/
I
I
I
\
\
\
I
I
I

\
,, /
/
\
,, /

, /
/

Figura 1.9 Monitorac;:ao de uma pessoa em um sistema eletronico pervasivo de tratamento de saude utiJizando (a)
um hub local OU [b) uma conexao continua sem fio.
- - 30 descarregados periodicamente em urn disposi- Normalmente, uma rede de sensores consiste em
armazenamento de maior capacidade. A vantagem dezenas a centenas de milhares de nos relativamente
e quema e que 0 hub tambem pode gerenciar a pequenos, cada urn equipado com urn dispositivo de sen-
~ --...-. :\a segunda, a BAN esta ligada continuamente a soriamento. A maioria das redes de sensores usa comuni-
rede externa, mais uma vez por uma coneX30 sem ca~ao sem fio, e os nos com frequencia saG alimentados
.:= •• qual envia dados monitorados. Sera precise disponi- por bateria. Seus recursos limitados, sua capacidade res-
tecnicas separadas para gerenciar a BAN. Claro trita de comunica~ao e demand a reprimida de consumo de
_ = rambem poderao existir mais conex6es com urn medi- energia exigem que a eficiencia ocupe urn dos primeiros
om outras pessoas. lugares da lista de criterios de projeto.
Da perspectiva do sistema distribufdo, deparamos A rela~ao com sistemas distribufdos pode ser escla-
.aramente com quest6es como: recida considerando redes de sensores como bancos de
dados distribufdos. Essa visao e bastante comum e facil
l Onde e como os dados monitorados devedo ser
de entender quando se percebe que muitas redes de sen-
armazenados?
sores saG montadas para aplica~6es de medi~ao e vigilan-
2.. Como podemos evitar a perda de dados cruciais?
cia (Bonnet et aI., 2002). Nesses casos, urn operador gos-
Qual e a infra-estrutura necessaria para gerar e
taria de extrair informa~6es de (uma parte de) uma rede
transmitir sinais de alerta?
simples mente emitindo consultas como "Qual e a carga
.. Como os medicos podem dar retorno on-line?
de trafego na direc;ao norte na Rodovia I?". Essas consul-
Como po de ser alcan~ada a extrema robustez do
tas saG parecidas com as consultas tradicionais em bancos
sistema de monitora~ao?
de dados. Nesse caso, e provavel que a resposta tenha de
Quais saG as quest6es de seguran~a e como as
ser dada por meio da colabora~ao de muitos sensores
polfticas adequadas podem ser impostas? localizados ao longo da Rodovia 1, deixando, ao mesmo
Diferentemente dos sistemas domesticos, nao pode- tempo, os outros sensores intactos.
e: perar que a arquitetura de sistemas pervasivos de Para organizar uma rede de sensores como urn banco
ento de saude tenda a passar para sistemas de urn de dados distribufdo ha, em essencia, dois extremos,
-~o ervidor e que seus dispositivos de monitora~ao como mostra a Figura 1.10. No primeiro, os sensores nao
:::erem com funcionalidade mfnima. Ao contnirio: por cooperam; simplesmente enviam seus dados a urn banco
:!Zae de eficiencia, os dispositivos e redes de areas cor- de dados centralizado, localizado no site do operador. No
~ _. tedo de suportar processamento de dados na outro extremo, as consultas saG repassadas a sensores
e. 0 que significa que os dados de monitora~ao terao relevantes e permite-se que cada urn processe uma respos-
-= er agregados antes de ser armazenados permanente- ta, 0 que requer que 0 operador agregue, de modo sensa-
te ou enviados a urn medico. Diferentemente do caso to, as respostas devol vidas.
2: temas de informa~ao distribufdos, ainda nao ha uma Nenhuma dessas soluc;6es e muito atraente. A pri-
-=s ta clara para essas quest6es. meira requer que os sensores enviem pela rede todos os
seus dados medidos, 0 que pode desperdi~ar recursos de
rede e energia. A segunda solu~ao tambem pode ser per-
dularia, porque despreza as capacidades de agrega~ao dos
_ osso ultimo exemplo de sistemas pervasivos saG as
sensores que permitiriam 0 retorno de uma quantidade
_~e de sensores. Em muitos casos, essas redes saG parte
muito menor de dados ao operador. Portanto, e preciso
...2. t nologia que habilita a pervasividade, e veremos que
facilidades para processamento de dados na rede, como
.£as solu~6es para redes de sensores saG aproveitadas
encontramos tambem em sistemas pervasivos de trata-
aplica~6es pervasivas. 0 que torna as redes de senso-
mento de saude.
_- interessantes da perspectiva de sistema distribufdo e
em praticamente todos os casos elas saG usadas para
o processamento de dados na rede pode ser feito de
varias maneiras. Vma obvia e repassar uma consulta a to-
e:ssar informa~6es. Nesse senti do, elas fazem mais do
dos os nos sensores ao longo de uma arvore que abranja
• apenas fornecer servi~os de comunica~ao, que e 0
todos os nos e, na sequencia, agregar os resultados a medi-
-~etivo principal das redes de computadores tradicionais.
da que saG propagados de volta a raiz em que esta locali-
Akyildiz et aI. (2002) dao uma visao geral de acordo
zado 0 iniciador. A agrega~ao ocorrera onde dois ou mais
rom a perspectiva de rede. Zhao e Guibas (2004) dao uma
ramos da arvore se encontrarem. Pode ate parecer que esse
0... odu~ao as redes de sensores orientadas a sistemas.
sistema e simples, mas ele introduz quest6es diffceis:
:="'treitamente relacionadas com as redes de sensores saG
- redes em malha, que, em essencia, formam urn con- 1. Como montar (dinamicamente) uma arvore efi-
~:m[Q de nos (fixos) que se comunicam por meio de liga- ciente em uma rede de sensores?
;Oe: sem fio. Essas redes podem formar a base para mui- 2. Como ocorre a agrega~ao de resultados? Ela pode
a> istemas distribufdos de medio porte. Akyildiz et aI. ser controlada?
_DOS) dao uma visao geral dessas redes. 3. 0 que acontece quando enlaces de rede falham?
Lado do operador

I EJI~ sensores
sao enviados
diretamente
ao operador

Cada sensor
pode processar e
armazenar dados

Site do operador

[] :~nsore:<
enviam
somente

respostas

Figura 1.10 Organizando um banco de dados de rede de sensores e, ao mesmo tempo, armazenando
e processando dados (a) somente no site do operador ou (b) somente nos sensores.

Essas quest6es sao parcialmente resolvidas pelo que eles facilitam a integra<;ao em um unico sistema de
TinyDB, que implementa uma interface declarativa diferentes aplica<;6es que executam em computadores
(banco de dados) com redes de sensores sem fio. Em diferentes. Uma outra vantagem importante e que, quan-
essencia, 0 TinyDB pode usar qualquer algoritmo de do adequadamente projetados, sistemas distribufdos
roteamento baseado em arvore. Urn no intermediario podem ser ampliados com facilidade em rela<;ao ao tama-
colhera e agregara os resultados de seus filhos, junto com nho da rede subjacente, Muitas vezes essas vantagens
suas proprias constata<;6es, e os enviara em dire<;ao a raiz. vem a custa de software mais complexo, degrada<;ao do
Para dar eficiencia ao sistema, as consultas abrangem urn desempenho e, tambem, freqiientemente, de men or segu-
periodo que leva em conta 0 cuidadoso escalonamento ran<;a. Nao obstante, ha consideravel interesse mundial na
das opera<;6es, de modo que 0 consumo de recursos da constru<;ao e instala<;ao de sistemas distribufdos.
rede e de energia seja otimo, Se quiser mais detalhes, con- Sistemas distribufdos costumam ter como meta ocul-
sulte Madden et al. (2005). tar grande parte das complexidades relacionadas a distri-
Contudo, quando consultas podem ser iniciadas em bui<;ao de processos, dados e controle, Contudo, essa
diferentes pontos da rede, usar arvores de umaunica raiz, transparencia de distribui<;ao nao e apenas conseguida a
como no TinyDB, pode nao ser suficientemente eficiente. custa do desempenho, mas, em situa<;6es praticas, ela
Como alternativa, redes de sensores podem ser equipadas nunca pode ser totalmente alcan<;ada, 0 fato de ser neces-
com nos especiais para os quais sao repassados resulta- sario estabelecer compromissos de modo a obter varias
dos, bem como as consultas relacionadas a esses resulta- formas de transparencia de distribui<;ao e inerente ao pro-
dos. Para dar urn exemplo simples, consultas e resultados jeto de sistemas distribufdos, e e facil que elas compli-
relacionados a leituras de temperatura sao colhidos em quem a sua compreensao.
urn lugar diferente dos relacionados as medi<;6es de umi- As coisas ficam ainda mais complicadas porque mui-
dade. Essa abordagem corresponde diretamente a no<;ao tos desenvolvedores adotam premissas iniciais sobre a rede
de sistemas publicar/subscrever, que discutiremos minu- subjacente que estao fundamentalmente erradas. Mais
ciosamente no Capitulo 13. tarde, quando essas premissas sao abandonadas, pode ficar
diffcil mascarar comportamentos indesejaveis. Urn exem-
plo tfpico e adotar como premissa que a latencia da rede
nao e significativa. Mais tarde, quando chega a hora de
transferir um sistema existente para uma rede de long a dis-
Sistemas distribufdos consistem em computadores. tancia, as latencias ocultas podem afetar profundamente 0
aut6nomos que trabalham juntos para dar a aparencia de projeto original do sistema. Outras ciladas incluem admitir
urn unico sistema coerente. Uma importante vantagem e que a rede e confiavel, estatica, segura e homogenea.
- em tipos diferentes de sistemas distribufdos que 6. Par que nem sempre e uma boa ideia visar a imple-
:= lassificados como orientados a suporte de mentac;ao do mais alto grau de transparencia possivel?
• - . processamento de informac;6es e pervasivi-
7. 0 que e urn sistema distribuido aberto e quais sao as
~~ .::era!, sistemas de computac;ao distribuidos sao
beneficios que a abertura proporciona?
: - para aplicac;6es de alto desempenho que muitas
~ originaram do campo da computac;ao paralela. B. Descreva, com exatidao, 0 que quer dizer sistema
e classe de sistemas distribuidos pode ser escalcivel.
em ambientes tradicionais de escrit6rio, nos 9. Pode-se conseguir escalabilidade pela aplicac;ao de
- ancos de dados desempenham importante papel.
diferentes tecnicas. Quais sao essas tecnicas?
almente, sistemas de processamento de transa-
utilizados nesses ambientes. Por fim, ha uma 10. Explique 0 que significa organizariio virtual e de uma
~ ~orgente de sistemas distribuidos na qual os com- sugestao para uma possivel implementac;ao dessas
-es ao pequenos e a sistema e composto ad hoc; organizac;6es.
a ima de tudo, eles nao sao mais gerenciados por 11. Dissemos que, quando uma transac;ao e abortada, 0
urn administrador de sistemas. Essa ultima clas- mundo e restaurado a seu estado anterior, como se a
omo representantes tipicos os ambientes de com- transac;ao nunca tivesse acontecido. Mentimos. De urn
- ubiquos. exemplo no qual restaurar 0 mundo e impossivel.

12. Executar transac;6es aninhadas requer certo tipo de


coordenac;ao. Explique 0 que urn coordenador deveria
realmente fazer.
~-ma definic;ao alternativa para urn sistema distribuido 13. Argumentamos que a transparencia de distribuic;ao
'" que ele e urn conjunto de computadores independen- pode nao estar presente em sistemas pervasivos. Essa
que da a impressao de ser urn sistema unico, isto e, declarac;ao nao vale para todos as tipos de transparen-
fata de haver vaDas computadores fica completa- cias. De urn exemplo.
ente oculto para os usuarios. De urn exemplo para a
14. Ia demos alguns exemplos de sistemas distribuidos
qual essa visao viria muito a calhar.
pervasivos: sistemas domesticos, sistemas eletronicos
Qual e 0 papel do middleware em urn sistema distri- para tratamento de saude e redes de sensores. Amplie
uido? essa lista com mais exemplos.

_ 1uitos sistemas em rede sao organizados em termos IS. (Tarefa de laboratorio) Esboce urn projeto para urn
de uma retaguarda e de uma vanguarda. Como as sistema domestico composto de urn servidor de rnidia
organizac;6es se ajustam a visao coerente que exigi- em separado, que leva em conta a ligac;ao com urn
mos para urn sistema distribuido? cliente sem fio. Esse ultimo esta conectado a urn equi-
pamento (anal6gico) de audio e video e transforma as
Explique 0 que quer dizer transparencia (de distribui-
seqiiencias de midia digital em saida anal6gica. 0 ser-
c;ao) e de exemplos de diferentes tipos de transparencia.
vidor executa em uma maquina separada, possivel-
Par que as vezes e tao dificil ocultar a ocorrencia e a mente conectada a Internet, mas nao ha nenhum tecla-.
recuperac;ao de falhas em urn sistema distribuido? do nem monitor conectado a ela.

Você também pode gostar