You are on page 1of 19
Introducao Os sistemas de computago esto passando por uma, revolugio. Desde 1945, quando comecou a era moderna dos computadores, até aproximadamente 1985, os com. putadores eram grandes e caros. Mesmo os minicomputa- dores custavam no minimo dezenas de mithares de déta- res cada, O resultado € que a maioria das organizagies linha apenas alguns poucos computadores ¢, na falta de uum modo de conecti-1os, eles funcionavam independente~ mente uns dos outros. ‘Contudo, mais ou menos a partir de meados da déca- dda de 1980, dois avangos tecnolSgicos eomecaram a muclar ss sittuago. O primero foi 0 desenvolvimento de miero- processadores de grande capacidsde. De inicio, eram imiquinas de 8 bits, m: am comuns CPUs de 16, 32 € 64 bits. Muitas dessas CPUs tinham a capacidade de computagio de um mainframe — isto é, um grande computador central —, mas por uma fragio do prego del A quantidade de melhorias que ocorreu na tecnologia de computadores nos tiltimos 50 anos & verdadeiramente assombrosa e totalmente sem precedentes em outros seto- res. De uma niiquina que eustava der milhies de délares € executava uma insirugio por segundo, chegamos mquinas que custam mil dolares © podem executar um bilhio de instrugdes por segundo, um ganho pregovdesem- penho de 10! Se os carros tivessem methorado nessa pro: oreo no mesmo periodo de tempo, um Rells Royce cus- taria agora um d6lar efaria um bilhio de milhas por gala AInfelizmente. € provavel que tam de 200 paginas para ensinar como abrir a porta.) O segundo desenvolvimento foi a invencao de redes de computadores de alta velocidade. Redes locais, ou LANs (local-area networks), permit Imiguinas localizadas dentro de um edificio se tadas de modo tal que pequenas quantidades de informa. Go possam ser transferidas entre méquinas em alguns Ierossegundas, ou algo parecido, Maiores quantidades de dados podem ser movimentadas entre miquinas a taxas de 100 milhdes a 10 bilhdes de bits. Redes de longa distancia, ow WANs (wide-area networks), per- mitem que mithdes de méquinas no mundo inteiro se conectem a velocidades que variam de 64 Kbitvs « giga- bits por segundo, logo se tor im tivesse um manval n que cemtenas de resultado dessas tecnologias & que, atualmente, no somente € vidvel, mas também fa computagio compostos por grandes quantidades de putadores conectados por uma rede de alta velocidade. Esses sistemas costumam ser denominados redes de com- putadores ou sistemas distribuides, em comparayio com, os sistemas centralizados (ou sistemas monoprocess- dores) anveriores, que consistem em um dnico computa dor, seus periféricos e, talvez, alguns terminais remotos, |, montar sistemas de 1.] Definigéo de um Sistema Distribuido Virios definigdes de sistemas distibuides jé foram dadas na literatura, nenhuma delas satisfat6ria e de acor- do com nenhuma das outras, Para nossa finalidade, é suli- ciente dar uma caracterizagiio sem ser muito especities: Um sstema aistibuldo & um conjunto de compu: spresenta a seus rente adores independentes que se Essa detinig primeiro & que um sistema distribuido consiste em com: ponentes (isto €, computadores) auténomos, Um segundo, aspecto & que 08 usudrios, sejam pessoas ou programas, aacham que esto tratando com umn tinica sistema, 1380 sig- nifiea que, de um modo ou de outro, os componentes, auténomos precisam colaborar, Como estabelecer es colaboragio € 0 ceme do desenvolvimento de siste distribuidos. Observe que nenhuma premissa € acotada io a0 tipo de computadores, Em principio, até mesmo dentro de um tnico sistema, eles poderiam variar desde computadores centrais (mainframes) de alto desem- penho até pequenos nds em redes de sensores. Da mesma. manera, nenhuma premissa € adotada quanto ao modo como os compuladores so interconeetados, Voltaremos cesses aspectos mais adiante neste capitulo, Em vez de continuar com definigdes. talver seja mais dtl que nos concentremos em caracteristicas impor- {antes de sistemas distribuidos, Uma caracteristica impor {ante € que as diferengas entre 0s virios computadores ¢ 0 modo como eles se comunicam esta0, em grande parte, firios agpectns importantes. O 2 Sistemas distibuta ‘ocultas aos ustirios, O mesmo vale para a interna do sistem distribuido. Uma outea ca importante & que ususrios e aplicagées podem interagir com um sistema distribuido de manei forme, independentemente de onde a interagdo ocorra. Em principio, também deveria ser relativamente fil expandir ou aumentar a eseala de sistemas distribu dos. Essa computadores independentes, porém, 0 mesmo tempo. de ocultar como esses computadores realmente fazem racteristica consistente e uni aracteristica € uma conseqliéneia direta de ter parte do sistema como um todo, Em geral, um sistema, distribuido estar continuamente disponivel, embora aalgumas partes possam estar temporariamente avariadas. Usuirios aplicagdes nai devem perceber quais so as partes que esto sendo substituidas. ou consertadas, ou {quatis Slo as novas partes adicionadas para atender a mais uusuirios ou aplicagbes, Para suportar computadores ¢ redes hetemgéneos e. simultaneamente, oferecer uma visio de sistema tinico, os, sistemas distribuidos costuniam ser organizads por meio de uma camacla de software — que é situada logicamente centre uma eamada de nivel mais alto, composta de usu ios e aplicagdes, & uma camada subjacente, que consiste ‘em sistemas operacionais ¢ facilidades basicas de com: nicagio, como mostra a Figura 1.1. Por isso, tal sistema, Aistribuido as veres & denominado middleware Gompurador1 Cemputader? Computedor 3 Computadoré aa Aplcacao 8 wee [Ganda do sisioma dstibvige(medaeware) oveea|] [Sota] [[soteeaa Figure stems me A Figura 1.1 mostra quatro computa Uuds aplicagbes, das quais a aplicagdo B & distribuida para ‘0s computadores 2 ¢ 3. A cada aplicagio, O sistema distribus rmeios para que os componentes de uma tinica aplicagao distribuida se comuniquem uns com os outros, mas tam: bem p mes aplicagdes se comuniquem, Ao mesmo tempo, ele ocutta, do melhor ¢ mais razoavel ‘modo possivel, asdiferengas em hardware e sistemas ope racionais para cada aplicagao, xesma interface & oferecida a lo. proporciona os nite que dite 1.2 Metas © fato de ser possivel montar sistemas distribuidos, do quer dizer necessariamente que essa seja uma boa ida, Afinal, dada a tecnologia corrente, também 6 possi vel colocar quatro drives de disco Mexivel em um compu- tador pessoal. A questi & que nie teria sentido fazer isso. Nesta seg, discutiremos quatro metas importantes que ddevem ser cumpridas na construgao de um sistema distri- bbufdo para que valha a pena o esforgo, Um sistema dis- tribuido deve oferecer facil acesso a seus recursos: deve ‘ocultar razoavelmente bem 0 fato de que os recursos so distribuidos por uma rede; deve ser aberto e deve poder ser expandido, 12.1 Acesso @ recursos A principal meta de um sistema distrib tar aos usuitins, © AS aplicagdes, © acesso a recursos, remotos ¢ seu compartifhamento de maneira controlada € eficiente, Os recursos podem ser muito abrangentes entre os exemplos tipicos esto impressoras, computado- res, fucilidades de armazenamento, dados, paginas Web e redes. 56 para citar alguns, Ha muitas razses para querer compartilhar recursos, ¢ uma razio dbvia é a economia. Por exemplo, & mais barato permitir que uma impressora seja compartlhada por diversos ususrios em um pequeno escritério do que ter de comprar e manter uma impresso- ra direcionads a cada usixirio, Do mesmo modo, em ter mos econdmivos, faz sentido compartilhar recursos de allo custo como supercomputadores, sistemas de armaze- rnamento de alto desempenho, imagesetters & outros peri {éricos caros, Conectar usuiios e recursos também facilita a cola boragio e a troca de informagdes, o que & claramente ilus- ado pelo sucesso da Internet com seus protocolos sim: ples para trocar arquivos, correio, documentos, siudio € ‘deo, Agora, a conectividade da Internet esti Ievando a varias organizagdes Virtuais nas quais grupos de pessoas, muito dispersas geograficamente trabalham juntas. por meio de groupware, isto ¢, software para edigio colabo: rativa, teleconferéncia © assim por dianie, Da mesma, ‘mancira, a conectividade da Internet possibilitou 6 comeér- cio eletrdnico, que nos permite comprar e vender todos os, tipos de mereadoria sem ter de realmente ira uma loja ou ‘até mesmo sair de Comtudo, & medida que a conectividade e o compar- tilhamento crescem, a segurang importante, Na pratica corrente, os sistemas. oferecem pouea protegdo contra bisbilhotice ou intrusdo na comu- nicagio, Senkas € outras informagdes sensiveis muitas, vyezes so enviadas como texto comum — isto &, nd erip- tografado — pel {que podemos apenas esperar que sejam contiveis. Nesse sentido, hi muito espago para melhorias, Por exemplo,, hoje € possivel fazer pedidos de mercadorias informando apenas um nimero de cartao de crédito, Raramente & soli- citada uma prova de que o cliente seja © proprietério do to, No fuiuro, fazer pedidos desse modo s6 ser pos- se torna cada vez mais rede, ou armazenadas em servidores sivel se vocé realmente provar que: possui 0 cart numa leitora de cartd aos, inserindo-0 Um outro problema de seguranga € 0 rastreamentoy de comunicagies para montar tum perfil de preferéneias de um ususrio especifico (Wang et al., 1998). Es trean da privacidade, em especial se for feito sem avisar 0 usudrio, Um problema relacionade & que maior conectividade também pode. resultar em comunicagao indesejivel, como envio de mala direta sem permissio, muitas vezes denominada, spam, Nesses casos. talvez precisemos nos proteger usain- do filtros especiais de informagdes que selecionam men- sagens de entrada com base em seu contetido, 122 Transparéncia da cistriuigéa Uma meta importante de um sistema distribuido & ‘ocultar 0 fato de que seus processos e recursos estio fis camente distribuidos por virios computadores, Um siste- ima distribuido que & capaz de se apresentar a ustsitios & aplicagses como se fosse apenas um Gnico sistema de computador nado transparente, Em primeiro 1, vamos exaaminar quals So 0s tipos de transparéncia {que existem em sistemas distribuidos, Em seguida, abor daremos a questio mais geral sobre a decisio de se a Iransparéneia & sempre requerida, Tipos de transparéncia © concvito de transparéncia pode ser aplicado a diversas aspectos de um sistema distsibuide — os mais importantes so mostrados na Tabela 1.1 ento & uma violagio explic denon ‘Tansparéncia Descrigio ‘ewsto ‘Ocuta dlarongas ns epresentagio de dads © ‘romod de sesso a um recuts0 Loeatzagio aut olugar em que um ecurso st ocazad Ngagse —— Oeuta que um recurco pao or ‘movide para outa localzapao Relccagio _Oauta que um recurso pode ser avid para uma outa oealzagao anquana en uso Fepicagio Cnt que um recurso 6 epteado CConcorréncla_Geuta que um recurso pode ser cempartinad por awersoe ususnosconcowantes Faia ‘Govt a tae ea recuporagie do um reurso Tabela 11 Dverentes form ‘Transparencia de acesso (rata de ocultar diferengas em representagio de dados e 6 modo como os recursos podem ser acessados por usudrios. Em unt nivel basico, desejamos ocultar diferengas entre arquiteturas de miiqui- ‘as, porém 6 mais importante é chegar a um acordo sobre como os dados devem ser representados por miquinas € sistemas operacionais diferentes. Por exemplo, um siste- ma distribuido pode ter sistemas de compuragio que exe- ccutam sistemas operacionais. diferentes, cada um com suas proprias convengies para nomeagio de arquivos. Capitulo) invoducao 3 Diferengas entre convengiees de nomeagio € também o modo como os arquivos devem ser manipul ficar ocultos dos ususrios e das aplicagbes. Um importante grupo de tipos de transparéncia tem aver coma localizagio de um recurso, Transparéncia de oe se a0 fato de que os usuérios: nao podem dizer qual & a localizagao fisica de um recurso no sistema. & nomeagio desempenha um papel importante para conseguir transparéncia de localizagio. m particular, pode-se conseguir transparéncia de localizagio ao se aribuir somente nomes log s0s, isto & nomes nos quais a localizagdo de um recurso no estd secretamente codificada, Um exemplo desse tipo de nome & URL ftp: /fwsew:prenhall.comfindex html, que no da nenhuma pista sobre a localizagio do principal se vidor Web da Prentice Hall. O URL tambsin no dé nenfu- ima pista ve index: html sempre esteve em sua localizacio corrente ou se foi transferido para ki recentemente. Diz-se ue sistemas distribuidos nos quais recursos podem ser movimentados sem aletar 6 modo como podem ser acessa- dos proporcionam transparéncia de migragio. Ainds mais vantjosa & a situagio na qual recursos. podem ser relocados enguanto estao sendo acessados sem que 0 ust rio ou a aplicagao pereebam qualquer coisa, Nesses caso diz-se que o sistema suporta transparéncia de relocagao. Um exemplo de transparéneia de relocago & 0 uso movel de laptops sem fio, cujos usuirios poxiem continuar & usi Jo quando vao de um lugara outro sem sequer se descone tar temporariamente. Como veremos. a replicagio desempenha um papel muito importante em sistemas distribuidos. Por exemplo, recursos porlem ser replicados para aumentar a disponibil dade ou melhorar 0 desempenho colocando um c6p perto do lugar em que ele & acessado. Transparéneia de replicagio esti retacionada a ocultar o fato de 4 ‘rias c6pias de um recurso. Para ocultar a replicaga -sério que todas as réplicas tenham o n ‘mo nome. Por conseqiiéncia, um sistema que suporta trans paréncia de replicago em geral também deve suportar transparéncia de locatizagio porqu Impossivel referir-se a réplicas em diferentes localizagie J mencionamos que uma importante meta de sist mas distribuides & permitir compartithamento de recur- sos. Em muitos casos, esse compartithamento € coopera- tivo, como no caso da comunicagio. Todavia, também hit muitos exemplos de compartithamento competitive de recursos. Um deles pode sero caso de dots usuarios inde- pendentes, em que cada um pode ter armazenado seus arquivos no mesmo servidor de arquives ou pode acessar as mesma tabelas em um banco de dados compartithado, esses caso, € importante que cada ustiio nao pereeba que 0 outro esta utilizando 0 mesmo recurso, Esse fend= meno € denominado transparéncia de concorrénci Uma questo importante & que 0 acesso concorrente a um recurso compartihado deixe esse recurso em estado con- lados devem 0 refer 4 Sistemas distribuidos sistente. Pode-se conseguir consisténeia por meio de ta vas de acesso, 0 que da cada usin, um por ve7, aces so exclusive a0 recurso desejado, Um mecanismo mais refinado & utilizar transagdes: po capitulos posterioces, & bastante dificil implementar tran- sages em sistemas distribuidos. ‘Uma definigio alternativa © popular de um sistema distribuido, devida a Leslie Lamport, € *"Voeé sabe que tem tum quando a falha de um computador do qual nnea ouvin falar impede que vor® facia qualquer trabalho”, Essa des crigGo pontua uma outra questio importante no projeto de sistemas distribuidos: como tratar falas. Fazer com que um sistema distibuido seja transparente & falha signif «a que um usuirio no pereebe que um recurso (do qual possivelmente nunca ouviu falar) deixou de fancionar bem «€ que, subseqiientemente, 0 sistema se recupereu da fala. Mascarar falhas & uma das questGes mais difices em sis temas distribuidos e até mesmo impossiveis de se realizar quando so adotadas certas premissas aparentemente rea listas, como discutiremos no Capitulo 8, A principal dif cculdade para mascara falhas esti na ineapacidade de dis Linguie entre um recurso morto ¢ um recurso insuportave- mente lento. Por exemplo, quando contatamos um servidor Web ocupaudo, a certaalturs 0 tempo do browser Se esgo- tari e ele avisard que a pagina Web no esta disponivel Nesxe ponto, 0 ustirio nao pode concluir se, na verdale, ‘ servidor estéavariado, Grau de transparéncia Embor: éncia de distribuigio seja geral ‘mente considerada preferivel para qualquer sistema distri buido, hi situagées em que tentar ocultar completamente distribuigao n boa idgia, Um exemplo & requisitar que seu jomal eletrd- nico aparega em sua caixa postal antes das 7 horas da mana, hora local, ‘momento voc’ esti no outro lado do mundo, ande 0 fus0. hhoririo € diferente, Seu jornal matutino nao seri aquele 30 qual yoo’ estd acostumado, Da mesma maneira, nao se pode esperar que um sis tema distribuido de longa distancia que conecta um pro- ccesso em San Francisco a um processo em Amstenda ‘oculte 0 fato de que a Mae Natureza nao permitird que ele cenvie uma mensagem de um processo para 0 outro em menos do que aproximadamente 35. milissegundos, Na pritica, quando se esti usando uma rede de computado- res, isso levari varias eentenas de milissegundes, A trans: isso de sinal no somente est limitada pela velocidade da luz, mas também pelas capacidades de processamento dos comutadores intermedirios. Também bd um compromisso entre um alto grau de transparéneia ¢ 0 desempenho de um sistema: Por exem: plo, muitas aplicagdes de Internet tentam contatar um ser- vidor repetidas vezes antes de finalmente desistir. Por conseqiiéneia, tentar mascarar uma falha ransitoria de dos usuarios todos os aspectos da como sempre. enqua mo naquele servidor wesdetentar un outro pode eur a velocidade dbo sistema como ui todo. Nesse caso, talvezseja melhor cancele as tentativas para fa ‘Um outro exemplo é ode precisa replicas, ocalizadas em continentes die consistentes o tempo todo. Em outias paavras, se uma ceipia for alterada esa alteragio deve ser popagada para todas as epi ames de permitir qualquer outa operaga. E claro que, agora, uma nica operagao de stalizagao algo que no pode ser ocultado dos usuarios. Por fim, sity em que no € nem wim pouca vio que ocutar dstibuigao seja uma boa dia. A mel- da que sistemas distrbuidos esto se expanding pa io de localizagao e percepgio de contexto esti se lor mando cada ver mais importante, pode ser melhor expor a distibuigio em ver de tentar cull Essa exposigao de distrbvigao ficari mais evidente quando discutimos sistemas dstrbuidos embutidose ubiquos neste capitulo Commo um exemplo simples, considere uma funciondria que quer imprimir um arquivo que esté em seu notebook. E melhor enviar 0 trabalho a ser impresso a uma impres- sora ocupada que estéprxima do que a uma desocupada localizada na sede corporativa em uin pais diferente fe distribu, Reconhecendo que a oll ransparéncia de dstribuigao ¢ sinoplesmente impos Derguntar se & até mesmo sensato dissimular que pode- ‘mos alcangéla, Talvez seja muito melhor tomar a dstri- co explica, de modo que o usuéri e odesenvolvedor de aplieagao nunca sejam levados a aeredtar que existe uma coisa denominada transparéncia. © resultado serd portamento, 3s vezes inesperado, de um sistema distibut- do e, por iso, estardo nitis bem preparados para Tidar com esse conportamento, ‘A conclsdo é que visar & transparéncia de distribu co pode ser uma bela meta no projetoe ra implem ode sistemas distribuidos, mas deve ser consider Conjunto com outras questdes, como desempenko ¢ faci- Tidide Je compreensao, Nein sempre vale pent conseguir total transparénia, pois o prego que por isso pode ser surpreendentemente alto. 12.3 Abertura Uma outra meta importante de sistemas distribuidos a abertura, Um sistema distribuido aberto Jer conta, antir que varias, ws, devam ser um siste- ma que oferece servigos de acordo com regras pa dlas que descievem a sintaxe ¢ a sem’ gos, Por exemplo, em redes de computadores hai regras, padronizadas que governam o formato, ¢ conteddo eo significado de mensagens enviadas © recebidas. This, regras so formalizadas em protocols, No caso de siste- ica desses servi- mas distribuidos, em geral os servigos los por meio de interfaces, que costumam ser descritas em uma linguagem de definigio de interface (Interface Definition Lange Definigdes de interfaces escritas em IDL quase sem pre capturam apenas a sintaxe de servigos. Em outras, palavras, elas especificam com preciso os nomes das. fungées que estio disponiveis, junto com os tipos dos. parametros, os valores de retorno, as possiveis excegdes que podem surgir ¢ assim por diante. A parte dificil & cespecificar com precisio © que esses servigos fazem, isto é,a semamtiea das interfaces. Na pritica, tas especifica- «Bes So sempre dadas de modo informal por meio de lin. guagem natural ic adequadamente especificada, uma definigio de interface permite que u ta de certa interface se communique com um outro prox so que fornece aquela interface. Permite também que das. partes independentes construam implementagdes comple- mente diferentes dessas interfaces, o qu om dois sistemas distribuidos separados que funcionam exatamen: te do mesmo modo, Especificagdes adequadas sao completas € neutras, Completa significa que tudo que & necessirio para uma implementagio foi, de fato, especificalo, Contudo, muitas definigdes de interface nio sio absolutamente completas, portanto & necessiirio que um desenvolvedor adicione detalhes especificos da implementagio, De igual importincia & o fato de que especiticagdes: nao prescrevem como deve ser a aparéncia da implementa- ‘do: elas devem ser neutras. Completude ¢ neutralidade io importantes para interoperabilidade e portabilidade (Blair ¢ Stefani, 1998). Interoperabilidade caracteriza até que ponto das: implementagoes de sistemas ou componentes de fornece- dores diferentes devem coexistir e trabalhar em conjunto, ccom base na mera confianga miitua nos servigos de ead tum, especitficados por um padrio comum, Portabilidade caracteriza até que ponto uma aplica- lo desenvolvida para um sistema distribuido A pode ser executada, sem modifieago, em um sistema distribuido diferente B que implementa ay mesmas interfaces que A. i OUR Mek importante para unt sistem dist buido aberto é que deve ser fieil configuri-lo com base em componentes diferentes (possivelmente de desenvol- vedores diferentes), Além disso, deve ser fil adicionar hovos componentes ou substituir os existentes sem afetar ‘6s que continuam no mesmo lugar. Em outras palavras, tum sistema distribuido aberto deve ser também extensi vel. Por exemplo, em um sistema extensivel, deve ser relativamente ficil adicionar partes que sio exeeutadas ‘em um sistema operacional diferente, ow até mesmo subs- lituir todo um sistema de arquivo, Como muitos de nds sabemos por experiéneia prépria, & mais facil falar do que ir tal flexibilidade io espe processo arbitririo que necessi- sulla Capitulo 1 Introducao: 5 Separagao entre poltica e mecanismo ara conseguir flexibilidade em sistemas distribu dos abertes, € crucial que o sistema seja organizslo como tum conjunto de componentes relativamente pequenos & de facil substituigao ow adaptagzo. Isso implica que deve mos fornecer definigdes nao somente para as interfa nivel mais alto, isto é& as que aplicagdes, mas também definigdes para interfaces com partes interna do sistema, alm de descrever como exsas partes interagem: Essa abordagem € relativamente nova, Muit ‘mas mais antigos, ou mesmo slguns coatempor construides segundo uma abordagem monolitica na qual a separagiio dos componentes € apenas ligica, embora eles sejam impfementados como um sinieo eimenso programa Essa abordagem dificulta a substituigao ou adapta "um componente sem afetar todo o sistema, Portanto, siste~ ‘mas monoliticos tendom a ser Fechadosem vex de abertos ‘A necessidade de alterar um sistema distribuido € Sempre causada por um componente que ni forn ce a politica ideal para uma aplieag2o ou usustio expect fico, Por exemplo, considere a cache na World Wide Web. Em geral, os browsers permitem que os ustirios adaptem (0 visas por ususiios & 8 siste- jo de sua politica de cache especiticando 0 tamanho da cache & se a consistgncia de um documento em cache de\ la sempre ou se apens Contudo, 0 usuario ndo pode influenciar outros pardime- tos de cache, como o periodo que um documento pode permanecer na cache, ou qu: ddo quando a cache estiver cheia, Além disso, tomar decisdes de cache com base no comerido de um documento, Um usuario pode querer manter em cache uma tabelt de horirios de trens porque sabe que esses horirios dificilmente mudam, mas nunca as informagbes verifies uma vez por sesso. documento deve ser retira- impossivel sobre as eondicdes de trafego correntes nas rodovias. Precisamos de uma separacio entre politica e mec rhismo. No caso de cache na Web, por exemplo, o ideal seria que um browser proporcionasse facitidades apenas, para armazenar documentos e, ao mesmo tempo, permitis- se avs usuarios decidir quais documentos teriam de ser aarmazenados e por quanto tempo. Na pritica, isso pode ser oferta de um rico conjunto de parame- {ros que © ususrio pode estabelecer dinamicamente ‘Ainda melhor & que um usuirio possa implementar sua prépria potitica sob a forma de um componente que possa ser conectado diretamente ao browser. Claro que esse componente deve ter uma interface que o browser possa entender, de modo que ele possa chamar procedi -mentos dessa inte 124 Escalabilidade A coneetividade mundial pela Internet est rapida: mente se tornando Go comum quanto poder enviar u implemeniado pela i0-postal para qualquer pessoa em qualquer lugar do 6 Sistemas distributa ‘mundo, Com isso em mente, a escalabilidade & uma das, mais importantes metas de projeto para desenvalvedores, de sistemas distributdos, A escalabilidade de um sistema pode ser medida segundo, no minimo, trés dimensdes diferentes (Neuman, 1994). Em primeiso lugar, um sistema pode ser escalivel ‘em relagiio a seu tamanho, o que significa que é facil a ccionar mais usuitios ¢ recursos 2 sist . lugar, um sistema escakivel em termos geogrificos & um, sistema no qual usiirios ¢ recursos podem estar longe uns, dos outros. Em terceiro lugar, um sistema pode ser escar Livel em termos administrativos, © que significa que ele ainda pode ser facil de gerenciat, mesmo que abranja mu tas organizagbes administrativas diferentes. Infelizmente, tum sistema es em uma ou mais dessas dimensde imuitas vezes apresenta perda na capaci rnho & medida que é amptiado, Problemas de escalablidade Quando & nevessirio ampliar um sistema, é preciso resolver problemas de tipos muito diferentes, Em pri rmeiro lugar, vamos considerar a escalabilidade em rela 30 a0 tamanho, Se for preciso suportar mais usuirios ‘ow recursos, freqientemente deparamos com as limit: Bes de servigos centralizados, dados ¢ algoritmos (ver Tabela 1.2). Por exemplo, muitos servigos sio central zados no sentido de que sao implementados por meio de apenas um tnico servidor que executa em uma maquina especifica no sistema distribuido. O problema com esse cesquema ¢ dbvio: 0 servidor pode se transtormar em um ‘gargalo A medida que o niimero de usuarios ¢ apli ceresce. Ainda que tenhamos capacidades de processs. mento ¢ armazenagem praticamente ilimitaclas, a comu- niicagao com aquele servidor acabara por impedir eresci mento ulterior, Infelizmente, as vezes inevitavel usar apenas um Linieo servidor. Imagine que temos um servigo para geren- iar informagoes altamente confidenciais como hist6ricos rmedicos, contas de bancos ¢ assim por diante, Nesses ‘casos, talvez seja melhor implementar © servigo por meio de um tinico servidor localizado em uma sata separada, de alta seguranga, ¢ protegido em relagio as outras partes do sistema distribuido por meio de componentes de rede cespeciais. Copiar 0 servidor para diversas localizagdes para melhorar o desempenho pode estar fora de questo porque isso tornatia 0 servigo menos seguro, Coneeito Example Servgos centalzados Urn Unico sever para todos usuaios| ‘Agoriimes centalizados Fazoeoteamento com baso intrmagses compietas Tabela 12 Exempios de tmtorses de escalatnia ‘THo ruins quanto servigos eentralizados sio dados ceniralizados. Como nia perder de vista os niimeros de telefones ¢ enderegos de 50 milhies de pessoas? Suponha ada registro de dados pudesse eaber em 50 earacte- res, Uma tnica partigao de disco de 2.5 gigabytes propor- cionaria armazenamento suficiente. Porém, mais uma vez, esse caso, ter um tinico banco de dados sem divida satu- raria todas as linhas de io-que 0 acessam, Do mesmo modo, imagine como a Internet furcionaria se seu Sistema de Nomes de Dominio (Domain Name System — DNS) ainda estivesse implementado como uma tabela Ainiea, O DNS mantém informagbes de millies de compu tadores no mando inteiro e forma um servigo essencial para localizar servidores Web, Se cada requisicio para resolver um URL tivesse de ser passada para aquele tinico servidor DNS, & claro que ninguém estaria usando a Web — o que. por falar nisso, resolveria 0 problema Por fim, algorimos centalizados também si mi idgia. Em um sistema distribaido de grarde porte, uma quantidade ula por ‘muitas linhas, De um ponto de vista teérico, um bom odo de fazer isso & colherinformacoes completa sobre carga em tedas as maquina’ ¢ linhas, e entdo executar tum algoritmo para computar todas 3s rows étimas, Em seguida, essa informagio pode ser propagada por todo 0 sistema para melhorar 0 roteamento. O problema & que colher e transportar todas as infor- mages de entrada e said também seria mi idéia porque essas mensagens sobrecarregariam parted rede, Na ver- dade, qualquer algoritmo que colha informagées de todos os sites, enviesas a uma Gnica maquina para processamen- to e entio distribu os resultados para todos 0s sites deve ser, de maneira geral, evitado. Somente algoritmos des- centralizados devem ser utilizadlos, Em ger, ritmos tem as seguintes earacteristicas, que os distinguem dios alyoritmes centalizados: tem de ser rou 1. Nenhuma miquina tem informagSes completas sobre 6 estado do sistema, 2 As miquinas tomam decisdes tendo como base someate informagies locais, 3. A falha de uma maquina nio arruina o algoritmo, 4. No ha nenhuma premissa implicita quanto a cexisténcia de um relégio global AS trts primeiras decorrem do que dissemos até agora A tltima talvez seja menos Obvia, mas também é importan- te, Qualquer algoritmo que comece com "Precisamente as 12:00:00 todas as miquinas anotardo © tamanho de su fl de saida” falhard porque & impossivel conseguir a ex: cronizagio de todos os relégios, fato que os al dos cm conta, Quanto maior © sistema, incenteza, Talvez, soja possivel conseguir a sincronizagio de todos os relégios com tolerdncia de alguns microssegundos, fem uma tnica LAN, com consideravel esforgo, mas fazer isso em escals nacional ou internacional & complicado. oritmos em leva A escalabilidade geogedtica tem seus proprios pro- blemas. Lima das prineipais razées por que hoje & diffil ampliar sistemas distribuidos existentes que foram ori nalmente projetados para redes. Io baseados em comunicagio sinerona, Nessa forma de comunicagIo, uma parte que requisita um servigo, em geral denominada cliente, fica bloqueada até que uma om seja enviaela de volta, Essa abordigem costuma ar bem em LANs nas quais. a comunicagio entre dduas méquinas, na pior das hipotes _algumas centenas de microssegundos, Texavia, em um sistema de longa distincia, precisamos levar em conta que. ‘a comunicagio entre processos pode demorar centenas de milissegundos, isto é, ela € trés ordens de a. Construir aplicagbes interativas usando comunica: ‘ao sincrona em sistemas de longa dist Cuidado, algm de muita paciéneia, Um outro problema que atrapatha a escalabilidade fica & que a comunicagao em redes de tonga distin’ nerenternente niio confiivel e quase sempre ponto a ponto, Por comparagiio, redes locais em geral proporcio. ham facilidades de comunicago de alta confianga com base em broadcast, © que facilita muito 6 desenvolvimen- to de sistemas distribuidos. Considere o problema de localizar um servigo. Em um sistema de drea local. um processo pode simplesmente enviar uma mensagem broadcast a torlas as muiquinas, perguntando a se estd executando o servigo de que ele necessita, Somen: te-as miiquinas que tém aquele servigo reypondem, cada, uma delas fornecendo seu enderego de rede na mensagem de resposta, Tal esquem de localizagiio & inconcebivel ‘em um sistem de longa distancia: imagine s6 0 que acon: leceria se tentissemos locali na Internet, Em vez disso, & preciso projetar servigos, cespeciais de localizagao, que talvez tenfam alcance mun- dial e sejam capazes de atender a bilhOes de ususrios Voltaremos a sbordar esses servigos no Capi & que eles: so demera, comumen- grandeza mais ancia requer muito Ir um servigo desse modo hada com problemas de solugdes centralizadas que atra- palham a escalabitidade de tamanko, Se tivermos um sis ema com muitos componentes centralizados, é claro que a escalabilidade geografiea estar limitada pelos proble- mas de desempenho e confiabilidade resultamtes da come nicagdo a longa distincia, Além disso, nessa circunstancia ‘6s componentes centralizaxlos resultario em despericio de recursos de rede, Imagine que um gnico servidor de correio seja usado por um pats inteiro. Isso significaria que, quando voc’ enviasse um e-mail a seu vizinho, pri- imeiro o e-mail teria de ir até 0 servidor central de correio, que poderia estar a quil6 esse niio & 0 melhor eaminho, Por fim, uma questio dificil e, em muitos easos, ainda aberta € como ampliar um sistema distribuido por varios dominios administrativos. independentes. Um problema importante que precisa ser resolvido ¢ o de politicas con. Capitulo 1 Introducao: 7 Aitantes em relagio a utilizagdo — e pogamento — de re- cursos, gerenciamento ¢ seguranga Muitas vezes, por exemplo, os usuérios de um tinico dominio podem confiar em componentes de um sistema, Uistribuido que rexidam dentro desse mesmo dominio. tais casos, a administragdo do sistema deve ter testado € certificado aplicagies ¢ twmaxdo providéncias especiais, para garantir que os componentes nio sofram nenhuma, ago indevida, Em esséncia, os ususiios confiam em seus, administradores de sistema, Contudlo, essa confianga no ‘ltrapassa naturalmente as fronteiras do dominio, Se um sistema distribuido se expandir para um outro dominio, € preciso tomar duas medidas de seguranga. Antes, 0 sistema distribuido tem de se proteger contra ala ques maliciosos. do novo dominio: os usudtios do novo dominio podem ter somente acesso de leitura ao sistema, de arquivos no novo dominio original, Da mesma forma, facilidades como imagesetters caros ov computadores de alto desempenho podem nio estar disponiveis para ustsi- rios estranhos, Em segundo lugar, o nove dominio tem de eger contra ataques maliciosos do sistema distribut- do, Um exemplo tipico & 0 download de programas como applets em browsers Web, Basicaments, 0 nove dominio nfo sabe que comportamento esperar Ge tal cédigo este nnho e, portanto, pode decidir impor limites severos 30s © problema, como veremos no Capitulo 9, € como impor essas Timitagi Técnicas de escalabilidade Apés discutirmos a surge a questio de como resolve Na maioria dos temas distribufdos aparecem como problemas de desem- pemho causados por capacidade limitada de servidores € rede, Agora, hii basicamente apenas ts wenieas para ampliar sistemas: ocultar laténcias de comunicagao, distri- buigo e replicagao [ver também Neuman (1994)) Ocutiar mportante para conseguir escalabilidade geogrifica, A idgia basiea & sim- ples: tentar evitar, © quanto possivel, esperar por respos- tas a requisigbes remotas — e potencialmente distantes — de servigos. Vamos supor que um servigo seja requisitado em uma maquina remota, Uma alternativa a esperar por uma respesta do servidor & executar outro trabalho ttil no ado do requisitante, Em essencia, isso si ‘aplicagao requisitante de modo tal que ela use s6 comu- nicagdo assinerona. Quando chega uma resposta, a apli- » é inlerrompida ¢ um manipulados especial & chama- do para concluir a requisigao emitida a A comunicagio assinerona muitas vezes pode ser usa cm sistemas de provessamento de lotes ¢ em aplicagies par Telas, nos quaistarefas mats ou menos indepensdentes podem ser escafonadas para execuga0 enquanto ums outra tarefa esta esperundo pela conclusdo da comunieagao. Como alter nativa, pode-se iniciar um novo thread de controle para exe- iguns problemas de escalabilidda- sasos, problemas de escalabilidade em sis- iéncias de comunicay ica construir 0 Leriormente, 8 Sistemas distribuidos ccutar a requisigdo. Embora ele fique bloqueado & espera da resposta, outs threads no processo podem continua Contuxlo, hd muitas aplicagies que no poste fazer uso efetivo da comunicagio assinerona. Por exemplo, em. quando um usuirio envia uma requ Wo ter nada melhor a fazer do. que esperar pela resposta. Nesses casos, uma solugdo muito melhor & reduzir 8 comunicago global, passando parte da -computagiio que normalmente ¢ executada no servidor part ‘© processo do cliente que esti requisitando 0 servigo. ‘Um caso tipico em que essa abordagem funciona & 0 aacesso a bancos de dados por meio de formutirios. O preenchimento de formulirios pode ser feito com 0 envio de uma mensagem separada para cada campo ¢ a espera por um reconhecimento do servidor, como mostra a Figura 1.2(a), O servidor pode verificar se hd emros de sin- laxe antes de aceitar ‘Uma solugdo muito melhor & despachar para o clien te 6 eddigo para preencher 0 formulitio e possivelmente verifiear as entradas, além de fazer com que 0 cliente entrada, devolva um formulirio completo, como mostra a Figura 1.2¢h), Essa abordlagem de despaicho de esiigo atualme' te & amplamente suportada pela Web sob a forma de applets Java ¢ Javascript ‘Uma outra técnica importante de ampliagio & di buigio. distribuigdo envolve tomar um componente, sub- dividi-lo em partes menores e, na sequneia, espalhar essas partes pelo sistema, Um excelente exemplo de distribuigio 60 Sistema de Nomes de Dominio da Internet. O espago de nomes do DNS & organizaslo por hierarguia em uma é re de dominios, dividida em zonas sem sobreposigio, como mostra a Figura 1.3. Os nomes em cada zona sito ‘manipulados por um tinico servidor de nomes. Sem entrar fem muitos detathes, podemos imaginar cada nome de caminho como o nome de um hospedeiro na Internet e, por isso, associado a um enderego de rede daguele hospedeir, Basicamente, resolver um nome signifies retormar 0 endereco de rede do hospedeito associado. Considere, por exemplo, o nome nl.vicexlits. Para resolver esse nome, pri _meiro ele & passado ao servidor de zona ZI (ver Figura 1.3), eve senor i | Limo none aN STEEN ——] | (Sreevacsvam—] mal a LI a —. vests proceste ww tte onan Clente indie Ta rl “ > veraue Pree malo mute Figua L2 A aterenca entre cea fa urs Servidor Ou fo) € eote ventas femurs & medica que so preerchidos Figura LY exempto de aivsd0 do espaca de nomes do ONS em Zonas

You might also like