You are on page 1of 96
quarta edigdo SISTEMAS DISTRIBUIDOS ‘CONCEITOS E PROJETO dris ou Q = Caracterizacao de Sistemas Distribuidos 1.1 Introducao 1.2 Exemplos de sistemas distribuidos 1.3 Compartilhamento de recursos e a web 1.4. Desafios 1.5 Resumo im sistema distribuldo 6 aquele no qual os componentes localizados em com- putadores interligados em rede se comunicam e coordenam suas agdes ape- nas passando mensagens. Essa definicdo leva as seguintes caracteristicas dos sis- ‘temas distribuldos: concorréncia de componentes, falta de um relégio global e falhias de componentes independentes. Daremos trés exernplos de sistemas distributdos: © alntemet; ‘© uma intranet, que 6 uma parte da Internet gerenciada por uma organiza- 0; + computacdo mével e ublqua (ou pervasiva) © compartihamento de recursos é um forte motivo para a construcéo de sis- temas distribufdos. Os recursos podem ser gerenciados por servidores e acessados por clientes, ou podem ser encapsulados como objetos @ acessados por outros objetos clientes. A web sera discutida como urn exemplo de compartitharnento de recursos e serdo apresentadas suas principais caracteristicas. Os desafios advindos da construcao de sistemas distribuidos so a heteroge- neidade de seus componentes, ser um sisterna aberto, o que permite que compo- nentes sejam adicionacios ou substituldos, a seguranca, a escalabilidade ~ a capa- cidade de funcionar bem quando o numero de usuarios aumenta ~ 0 tratamento de falhas, a concorréncia de componentes e a transparéncia 11 Stsrewas Distrbulbos, CONceHOs E PROIETO Introdugao As redes de computadores estilo por toda parte. A Internet é uma delas, assim como as muitas redes das quais ela ¢ composta, Redes de telefones méveis, redes corporativas, redes de ffbrica, redes em campus, redes domeésticas, redes dentro de vefeule, todas elas, tanto sepaindamente como em conjun- {o, compartitham as caracteristicas bisicas que as tornam assuntos relevantes para estudo sob o titulo sistemas distribuidos. Neste livro, queremos explicar as caracteristicas clos compoladores interligados ‘om rede que afetam es projetistas e desenvolvedores de sistema e apresentar os principais conceitos ¢ ‘eonicas que foram criadas para ajudar nas tarefas de projeto c implementacdo de sistemas que os tém por base, Definimos um sistema distribufde como sendo aquele no qual os componentes de hardware ou software, localizados em computadores interligados em rede, se comunicam e coordenam suas ages apenas enviando mensagens entre si. Essa definicdo simples abrange toda a gama de sistemas nos quais computadores interligados em rede podem ser distribufdos de maneira til, Os computacores conectados por meio de uma sede podem estar separados por quatquer distin= cia. Bles podem estar em continentes separados, no mesmo prédio ou na mesma sala. Nossa definigio de sistemas cistribuidos tem as seguintes conseqiléncias importantes: Concorréncia: em unva tede de computadores, a execugiio concorrente de programas é a nor- mma. Posso fazer meu trabalho em meu computador, enquanto voc® faz o seu em sua maquina, ususrio da Figura 1.3 acessa trés formas diferentes de conexao sem fio, Seu notebook tem uma maneira de se conetar coma rede locel sem fo da organiza afta. Essa rede fomece cobertura. algunas contenas de metros (um andar de um dificio, igamos) ese coneca a restate dnt, net anftria por meio de um gateway. O usudrio também fem um telefone mével cell), que possi conexdio &Imternet permitindo acesso a péginas de informagdes simples, as quals aptesente em sua equena cla. Finalmente, ousurio est postin ume era cial, que se comunica por interme io de uma rede sem fio pessoal (com alcance ce cerca de 10m r si am re em op ) com um outro equipamento, come por sa gt un intvestrutara convenient, o usutio pode executar algunas tacts no site anit, sando os equipamentos qu carrega consigo Enguant esti no site anno, o usr poe buscar os regos de aces ma ecentes partir de um servidor web, usando seu eur, Darate uma reuniga om sus afd, oususio pode Ines mostrar uma fotografi, envindo-aapatr da camer dst, dlretamente para uma impressoraacequadamente ativada na sa de reunies. Isso exige apenas a Gormanicag se i ent a camera ea impessora, Em pictpin ces ps enviar un doctmento Para a mesma impressora,utlizando a tede local sem fie eonexd bbeadas coma impressora, onexoes Biter cx A computago mével ¢ a computagio ubfqua sfio uma rea de pesquisa ativa e serio o assunto do Capitulo 16. Internet 1 \ I : “ Lntvanet ants 1 1 I Intianet doméstica: “Rede focal ser fio 13 Capfruio 1m Canactenencho oF Sistemas Dsigioos 24 Compartilhamento de recursos e a web Os usuarios esto tio acosturmados as vantagens do compartithamento de recursos que podem ignorar seu significado facilmente, Rotineiramente, compartilhamos recursos de hardware (como impresso- ras), recursos de dados (como arquivos) e recursos com funcionalidade mais especftica (como os mecanismos de basca). Do ponto de vista do hardware, compartithamos equipamentos come impresoras e discos para reduzir os custos. Mas a maior importéncia para os usurios € compartithamento dos recursos em um nfvel de abstragto mais alto, como informagies necessérias As stias aplicagées, 20 seu trabalho Gigrio e em suas atividades sociais. Por exemplo, os usuérios se preocupam em compartilhar informa- 60s através de um banco de dados ou de um conjunto de paginas web — ¢ no com discos ou proces- sadores em que eles esto armazenadlos. Analogamente, 0§ Usuérios pensam em termos de recursos ‘compattilhados, como um mecanismo de busca ou um conversor le moeda corrente, sem considerar 0 servidor (ou servidores) que os fornecem. Na pritica, os padrées de compartilhamento de recursos variam amplamente na abrangéncia & no quanto os uswdrios trabalham em conjunto, Em um extremo, temos um mecanismo de busca na web que fornece um recurso para ususrios de todo 0 mundo, ususirios estes que nunca entram em contato diretamente. No outro extremo, no trabalho cooperative apoiade por compttadar, um grupo de usuarios colabora diretamente compartilhando recursos, como documentos, em um pequeno grupo Fechado, O padrio de compartilhamento ¢ a distribuigo geogréfica dos usuérios determinam quais ‘mecanismos 0 sistema deve fornecer para coordenar as ages dos usutios. termo servico € usado para designar uma parte distinta de um sistema de computador que ‘gerencia um conjunto de recursos relacionados e apresenta sia funcionalidade para uswétios ¢ aplica- tivos, Por exemplo, acessamos arquivos compartithados por intermédio de um servigo de sistema de arquivos; enviamos documentos para impressoras por meio dé um servigo de impressfio; adquirimos bens por meio de um servigo de pagamento eletrénico, © tinico acesso que temos ao servigo € por intermédio do conjunto de operages que ele exporta, Por exemplo, umn servigo de sistema de arquivos fornece operagbes de leitura, escrita.e exchusio dos arquivos. Em parte, 0 fato dos servicos restringirem 0 acesso ao recurso a um conjunto de operagdes bem definidas € uma prética padrdo na engenharia de software, Mas isso também reflete a organizagiio fisica dos sistemas distribuidos, Em um sistema distribufdo, os recursos si fisicamente encapsulados dentro dos computadores e sé podem ser acessados a partir de outros computadores por intermédio ‘de mecanismos de comunicagio, Para se obter um compartilhamento eficiente, cada recurso deve ser gerenciado por um programa que oferega uma interface de comunicagdo, permitindo 20 recurso ser acessado ¢ atualizado de forma confidvel e consistente. (O termo servidor provavelmente € conhecido da maioria dos leitores, Ble se refere a um programa em execugdo (um processo) em um computador intertigado em rede, que accita pedidos de programas ‘em exeougiio em outros computadores para efetuar um servigo responder apropriadamente. Os pro- ceessos que realizam os pedidos so referidos como clientes. Os pedidos sio envindos em mensagens dos clientes para um servidor e as respostas sto enviadas do servidor para os clientes. Quando o cliente cenvia um pedido para que uma operacao seja efetuada, dizemos que o cliente requisita uma operagao no servidor. Uma interagio completa entre um cliente ¢ um servidor, desde quando o cliemte envia seu pedido até 0 momento em que recebe a resposta do servidor, é chamada de requis ‘0 mesmo processo pode ser tanto cliente como servidor, pois, as vezes, os servidores solicitam ‘operagies em outros servidores. Os termos cliente e servidor s6 se aplicam as fangdes desempenhadas em um tinico pedlido, Os clientes sfo ativos e os servidores sito passivos; os servidores funeionam continuamente, enquanto os clientes duram apenas enquanto os aplicativos dos quais fazem parte estio ativos. Note que, por padrio, os termos cliente e servidor se referem a processos ¢ nfo nos computadores em que sfo executados, embora no jargio comum esses termos também se refiram aos eomputadores em si, Outra distingdo, que discutiremos no Capitulo 5, € que, em um sistema distribufdo escrito em uma linguagem orientada a objetos, os recursos podem ser encapsulados como objetos ¢ acessados por objetos clientes, nesse caso falamos em um abjero cliente invocando um método em um objeto servidor. 22 Stsrens Disresuibos, CoNceTos € Proseta Muitos sistemas distvibufdos (mas certamente nao todos) podem ser totalmente construfdos na forma de clientes ¢ de servidores interagindo, A World Wide Web, o e-mail e impressoras interligadas em rede so exemplos que se encaixam nesse modelo, Discutiremos alternativas para os sistemas cliente-servidor no Capitulo 2. Um navegador web em execugiio & um exemplo de cliente. O navegador web se comuniea com uum servidor web para solicitar paginas web. Agora, examinaremos a web com mais detalhes. 1.3.1 A World Wide Web A World Wide Web [www.w3.org ], Berners-Lee 1991] ¢ um sistema em evolugio para a publicagio € ara oacesso a recursos ¢ servigos pela Internet. Por meio de navegadares web (browsers) comumente Aispontveis, os usuérios recuperam e véem documentos de muitos tipos, ouvem fluxos de ducio, assis- tem a fluxos de video e interagem com tim vasto conjunto de servigus. ‘A web nasceu no centro europet de pesquisa nuclear (CERN), na Sufga, em 1989, como um veiculo para traca de documentos entre uma comunidad de fisicos conectados pela Internet [Berners- Lee 1999}. Una caracteristica importante da web que ela fornece uma estrutura de hipertexto entre 98 documentos que armazena, reffetindo a necessidade dos usuarios de organizar seus conhecimentos. Isso significa que os documentas contém inks (ou hypertinks) — referéncias para outros documentos ¢ Fecursos que também esto armazenados na web. fundamental para a experiéncia do usudirio da web que, ao encontrar determinada imagem ou texto dentro de umn dacumento, isso seja freqiientemente acompanhado de links para documentos e outros recursos relacionados, A estrutura de links pode ser arbitrariamente complexa e 0 conjunto de recursos que podem ser adi imitado ~ a “tein” (web) de links € realmente mundial. Bush [1945] imaginou estruturas de hipertexto hé mais de 50 anos; foi com o desenvolvimento da Intemet que essa idéia pode se manifestar em eseala mundial. ‘A web € umn sistema abervo: ela pode ser ampliada ¢ implementada de novas maneiras, sem per turbar a funcionalidade cxistente (veja a Secio 1.4.2). A operagiio da web € baseada em padites de ‘comunicagio ¢ de documentos livremente publicados. Por cxemplo, existem muitos tipos de navegs- dores, em muitos casos, implementados em vatias plataformas; ¢ existem muitas implementagdes de servidores web. Qualquer navegador pode recuperar recursos de qualquer servidor desde que ambos Ltilizem os mesmos padrGes em suas implementagdes, em outros termos, niio importa como eles so implementados mas sim o que eles implementam. Os usitérios tém acesso a navegadores na maioria dos equipamentos que utilizam, desde telefones méveis até computadores de mesa. A web € aberta no que diz, respeito aos tipos de recursos que nela podem ser publicados ¢ com- dos. Em sua forma mais simples, um recurso da web & uma pagina, ou algum outto tipo de eontetido, que possa ser armazenado em um arquivo e apresentado para 0 usuario, como arquivos de programa, arquivos de midia e documentos em PostScript ou Portable Document Format (pdf). ‘Se alguém inventar, digamos, um novo formato de armazenamento de imagem, entio as imagens que tenham esse formato poderio ser publicadas na web imediatamente. Os usuérios necessitam de meios para ver imagens nesse novo formato, mas os navegadores so projetados de maneira 1 acomodar nova funcionalidade de apresentagto de contexilo, na forma de aplicativos “auxiliares” e “plug-ins”. A web ji foi além desses recursos de dados simples, e hoje abrange servicas como a aquisigao eletronica de bens. Ela tem evoluido sem mudar sua arquitetura basica. A web é baseada em irés com- ponentes tecnolégicos padrao principais: + HTML (HyperText Markup Language) que & uma linguagem para especificar 0 contesido ¢ 0 leiaute de paginas de forma que elas possam ser exibidas pelos navegudores web. © URLs (Uniform Resource Locators), que identificam os documentos ¢ outros recursos arma- zenados como parte da web. © Capitulo 9 discutiré outras formas de identificadores de recur- sos da web, + Uma arquitetura de sistema cliente-servidor, com regras padrao para interagtio (0 protocolo HTTP — HyperText Transfer Protocol), por meio das quais os navegadores e outros clientes buscam documentos ¢ outros recursos dos servidores web. A Figura 1.4 mostra alguns nave- 23 Caviruno 1m CaRacrenizacho oe Sistemas DistmButbos : “ip. thwven.googke combsarch?grkindberg” aww google.com OL : Servidores web Navegadores : = Intemet vances Co — “niipiwnn.ckA.net” www.w3c.org oO So Sistema de arquives, wel ms “pitp:iiowen wc orgiProtocokiActity.himikintro” de wna nic.og, .-*Protgcolos a, Aatty.com Figura 1.4 Servidores e navegadores web. gadores realizando pedidos para servidores web. f uma caracteristica importante o fato dos usuérios poderem localizar © gerenciar seus préprios servidores web em qualquer parte da Internet. Discutiremos agora cada um desses componentes ¢, a0 fazermos isso, explicaremos 0 funciona mento dos navegadores e servidores web quando um usudtio busca paginas web e clica nos links nelas existentes. HTML © A HyperText Markup Language [www.w3.org TI] ¢ usada para especificar 0 texto © as ima- gens que compdem o conteddo de uma pagina web e para especificar como eles silo dispostos e for- ‘matados para apresentagio a0 usuario, Uma pagina web contém itens estruturados como cabegalhos, paragrafos, tabelas e imagens. A HTML também & usada para especificar Hinks ¢ 08 recursos que esto associados a eles. - 05 usudtios produzem eddigo HTML manualmente, através de um editor de textos padrao, ou uti- fizando umm editor wysiwyg (what you see is what you get) com recoahecimento de HTML, que gera c6- digo HTML a partir de um leiante criado graficamente, Um fexto em HTML tipico aparece a seguir:

Welcome to Earth! Visitors may also be interested in taking « look at the Moon.

Esse texto em HTML é armazenado em um arquivo localizado em um lugar onde um servidor web pode Ié-lo ~ digamos que seja 0 arquivo nomeado como earth.himl gravado no disco loctl do proprio servidor web. Um navegador recupera o contetido desse arquivo a partir de um servidor web ~ neste caso especifico, um servidor em um computador chamado www.cdk4.net. O navegador 1é © contetido retornado pelo servidor e 0 apresenta como um texto formiatado com as imagens que o com- 6e, dispostos em uma pagina web na forma em que estamos familiarizados a ver. Apenas 0 navegador =e no o servidor — interpreta o texto em HTML. Mas o servidor informa ao navegador sobre o tipo de contetido que estd retornando, para distingui-lo de, digamos, um documento em PostScript. O servidor ode deduziro tipo de contetda a partir da extensdo de nome de arquivo -html, | Note que as diretivas HTML, conhecidas como tags, sio incluidas entre sinais de menor ¢ maior, como em

. A linha 1 do exemplo identifica um arquivo contendo uma imagem de apresentagiio. Seu URL € huip://vwm.edkd.netivebExamnple/Images/earth,pg. As linhas 2 e 5 possuem as diretivas para iniciar ¢ terminar um pardgeafo, respectivamente. As linhas 3 ¢ 4 contém o texto a ser exibido na pagina web, no formato padrio de pardgrafo. . A linha 4 especifica um fink na pagina web. Ble contém a palavra Moon, circundada por duas diretivas HTML relacionadas e . O texto entre essas diretivas € 0 que aparece no WAuNS 24 Sistemas Distemuiogs, CoNceTOs € Prosero dink, quando ele é apresentado na pagina web. Por padrio, a maioria dos navegadores & configurada de modo a mostrar o texto de finks sublinhado; portanto, o que o usuério vers nesse pardgrafo ser: ‘Welcome to Barth! Visitors may also be interested in taking a look at the Moon, © navegador grava a associagfio entre o texto exibido do fink € 0 URL contido na diretiva —neste-caso: hup:thvwnedid.nethvebExainplefnoon.kamt Quando 0 usuirio clica no texto, © navegador recupera o recurso identificado pelo URL corres- pondente e o apresenta para o usuério, No exemplo, o recurso est em um arquivo HTML que especi- fica uma pagina web sobre a lua. URLs 0 objetivo de um URL (Uniform Resource Locator) (www.w3.org TIT] ¢ identifiear um re- curso, Na verdade, o termo usado em documentos de arquitetura da web € URL (Uniform Resource Mentifier), mas neste livro o terme mais conhecido, URL, sera usado quando nao houver diivida possivel. Os navegadores examinam os URLs para acessat os recursos correspondentes. Os URLs si0 fornecidos por um usudrio no momento em que ele 0 digita no navegador web, porém, as situacGes ‘mais comuns so aquelas em que o navegador pesquisa o URL correspondente quando o usuario clica em um ink, quando seleciona um URL de sua lista de bookmarks, ou quando 0 navegador busca um recurso incorporado em uma piigina web, como uma imagem, ‘Todo URL, em sua forma completa e absoluta, tem dois componentes de nivel superior: esquena : identificador-especifico-do-esquema _ O primeiro componente, o “esquema”, declara qual € 0 tipo dese URL. Os URLs siio obrigados a identificar uma variedade de recursos. Por exemplo, mailta:ine@anlSP.nel identifica 0 endereco de e-mail de um usustio; fip:/fip.downloadht.com/sofiware/aProg.exe identifica um arquivo que deve ser recuperado com 0 protocolo FTP (File Transfer Protocol), em vez do protocolo mais comumente usado, HTTTP. Outros exemplos ce esquemas so “nntp” (usado para especificar um grupo de notcias da Usenet) e “mid” (usado para identificar uma mensagem de e-mail). A web niio tem restrigdes com relagio aos tipos de recursos que pode usar para acesso, gragas aos designadores de esquema presentes nos URLS. Se alguém inventar um novo tipo de recurso, por exemplo, widger — talvez. com seu préprio esquema de enderegamento para localizar clementos em tuma jancia gréfica e seu proprio protocolo para acessé-tos -, entéio o mundo poder comegar a usar ‘URLs da forma widget:... . E claro que os navegadores devem ter a capacidade de usar 0 novo proto- colo widget, mas isso pode ser feito pela adigio de um plug-in. Os URLs com um designador de esquema do tipo HTTP sfio mais comuns para acessar recursos. web, Um URL HTTP tem duas tarefas + identificar qual servidor web mantém 0 Fecurso equal dos recursos esté sendo solicitado a esse servidor. A Figura 1.4 mostra tés navegadores fazendo pedidos de recursos, gerenciados por trés servidores web. O navegador que est mais acima esté fazendo uma consulta em um mecanismo de busca. O navegador do meio solicita a pagina padrao de um outro site web. O navegador que esti mais abaixo solicita uma pigina web especificada por completo, incluindo um nome de caminho relativo para o servidor. Os arquivos de determinado servie dor web sfio mantidos em uma ou mais subérvores (diret6rios) do sistema de arquivos desse servidor cada recurso ¢ identificado por um nome e um caminho relative (pathname) nesse servidor. 15m geral, os URLs HTTP sto da seguinte forma: hup:// nomedaservidor [:porta} [momedeCaminho} [7eonsulta]f Afragmento} — onde os itens entre colchetes so opcionais, Um URL HTTP completo sempre comega com o string btipif, seguido de um nome de servidor, expresso como um nome DNS (Domain Name System) (veja a Segao 9.2). O nome DNS do servidor é, opcionalmente, seguido do niimero da porta em que o ser- vidor recebe os pedidos (veja 0 Capitulo 4) - que, por padrdo, é a porta 80. Em seguida, aparece um nome de caminho opeional do recurso no servidor. Se ele estiver ausente, entio a pagina web padre do servidor seré solicitada, Finalmente, 0 URL termina, também opcionalmente, com um componente de consulta ~ por exemplo, quando um usuério envia entradas de um formulério, como a pagina de Caolruio 1m Caractenzacho oF Sstewas Distasuloas 25 consulta de um mecanismo de basea —c/ow tin identificador de fragmento, que identifica um compo- nente de um determinado recurso. Considere os URLs a seguir Intp:thoww.cdhd.net tp:l/voww.w3.org/Protocols/Activity.htmd intra Iutp:/hvww google.comlsearch?q=kindberg Bles podem ser subdivididos, como segue: "Noiie DNSdoseividor. ” Nonie de ean Consilta.. ~~ -Fraginento www.edk4.net (padrdo) (nenhuma) — ¢(nenhurn) www. wS.org, Protocols/Activityhtml — (nenhuma) intro wwvw.google.com seareh grkindberg —_(nenhum) 0 primeiro URL designa a pigina padrio fornccida por winncddd.net. O seguinte identifica um fragmento de um arquivo HTML ciijo nome de caminho € Protocols/Activity. HTML, rckativo ao servi~ dor www.w3.org. O identificador do fragmento (especificado apds 0 caraetere ff no URL) é inzro eum navegador procurard esse identificador de fragmento dentro do texto HTML, apds tee feito o download do arquivo inteiro, O terceiro URL especifica uma consulta para um mecanismo de busca. O caminho identifica um programa chamado search € 0 string apds 0 caracterc ? codifica um string de consulta fornecido como argumento para esse programa. Publicando um recurso: Embora a web tenha um modelo claramente definido para acessar um re~ curso a partir de sew URL, os métodos exatos para publicagio de recursos dependem da implemen- taciio do servidor. O método mais simples de publicagdo de um recurso na web € colocar 0 arquivo correspondentc em um diret6rio que 0 servidor web possa acessar. Sabendo o nome do servidor, S, © tum nome de caminho para o arquivo, C, que o servidor possa reconhecer, 0 usudtio constréi o URL ‘como http:/S/C. O ususrio coloea esse URL em um fink de um documento jé existente ou informa esse URL para outros usutirios de diversas formas, como por exemplo, por e-mail. Existem certas convengdes de nome de caminho que os servidores reconhecem. Por exemplo, um nome de caminho comegando com ~joe esta, por convengdo, em um subdiretGrio public_hint do diretério home do ususirio joe. Anatogamente, umm nome de caminho que termina em am nome de diretério, em vez.de terminar em um arquivo simples, convencionalmente se refere a um arquivo nese diretdrio, chamado index.html. Huang ef af. (2000] forece um modelo para inserir conteiido na web com mnfnima intervenedo humana, Isso € particularmente relevante quando os usuérios precisam extrair conteido de uma varic~ dade de equipamentos, como cameras, para publicagao em paginas web. HTTP 0 0 protocolo HyperText Transfer Protocol (swww.w3.org LV] define as maneiras pefas quais ‘0s navegadores e outros tipos de cliente interagem com os servidores web. O Capitulo 4 examinaré o protocolo HTTP com mais detathes, mas destacaremos aqui suas princi pais caracteristicas (restringin- do nossa discussio & recuperagio de referencias em arquivos): Interagdes requisicéo-resposta: 0 protocolo HTTP € do tipo requisigéio-resposta. O cliente envi ‘uma mensagem de requisigao para o servidor, contendo o URL do recurso solicitado. © servidor pesquisa 0 nome de caminho ¢, se ele existir, envia de volta para o cliente o contetido do arquivo ‘em uma mensagem de resposta. Caso contritio, ele envia de volta uma resposta de erro, como & conhecida 404 Not Found. Tipos de contetido: os navegadores nio sfio necessariamente capazes de manipular todo tipo de contetido. Quando um navegador faz uma requisigio, efe inclui uma lista dos tipos de conteddo ‘que prefere — por exemplo, em princfpio, ele poderia exibir imagens no formato GIF, mas no no formato JPEG. servidor poderd levar isso em conta ao retornar contetido para o navegador. O servidor inclui 0 tipo de contetico na mensagem de resposia para que 0 navegador saiba como

You might also like