segunda-feira, 14 de junho de 2010

Web caching para uma Internet mais rápida

Rodrigo Filipe Silva Carramate





Web caching nada mais é do que um processo pelo qual se armazena localmente conteúdo disponível na internet, a fim de minimizar o tráfego de rede e sua latência [1]. Apesar de parecer um conceito simples e de fácil compreensão, temos no web caching uma grande ajuda em dois fatores críticos nas redes atuais: a largura de banda [2] e a latência.

Devido à queda no custo da Internet de banda larga para o usuário final doméstico e empresarial nos últimos anos, temos muitas vezes a falsa impressão de que largura de banda se tornou algo economicamente acessível. Na verdade isto é um equívoco, uma vez que esse tipo de usuário paga, na verdade, por uma concessão que, segundo o SLA [3] (em português "Acordo do nível de serviço"), lhe garante apenas 10% do que contrata nominalmente. Temos porém exemplos em que a situação é bastante diferente, como no caso de pequenos provedores, em que há necessidade de um SLA que garanta algo próximo dos 100% da banda; nestes casos temos preços bastante elevados para o total de banda contratado. Desta forma, quanto menor for a demanda de banda nessas redes, menor será o custo com contratação de banda.

Outro grande problema que frequentemente encontramos é a baixa latência. Este costuma ser mais notado quando utilizamos algum serviço de streaming [4] diretamente da Internet, seja ao realizar uma video-conferência ou ao assistir a algum vídeo diretamente da Internet. Geralmente o sintoma mais comum em uma rede com baixa latência são travamentos frequentes durante a execução dessas tarefas.

Infelizmente, o web caching é limitado apenas ao caso da execução de conteúdo arquivado, porém, nesse contexto o web caching se torna um excelente aliado: ao manter em servidores locais o conteúdo da Internet mais acessado, evitam-se acessos externos desnecessários, sendo o mesmo conteúdo repassado diretamente pelos servidores ao usuário. Assim, além de o usuário receber a informação muito mais rapidamente, permitindo uma navegação muito mais proveitosa, há uma economia considerável de recursos, já que a necessidade de banda diminui consideravelmente.

Além de beneficiar a velocidade do acesso dos usuários da sua rede à Internet, o web caching ainda tem outro grande atrativo: o Squid [5], que é o software de web caching mais utilizado mundialmente tem seu código aberto, o que significa que todos podem estudá-lo e o melhorar. Além disso, felizmente alguns dos programadores do Squid têm permitido que seus usuários o possam usar gratuitamente

Devemos entender também que há vários tipos de caching, entre eles o caching feito na própria máquina e aquele feito na rede local. O primeiro é mais comumente feito pelo próprio navegador, possibilitando que se volte de maneira praticamente instantânea a páginas visitadas recentemente. O segundo, foco deste artigo, objetiva criar um cache compartilhado entre os usuários de uma mesma rede, de tal modo que se um usuário acessar uma determinada página, o servidor grava todo seu conteúdo automaticamente e distribui a cópia a cada uma das próximas tentativas de acesso.

A aquisição de uma página por um navegador sem uso de web caching se dá pelo contato direto entre o cliente e o servidor que hospeda a página, havendo transferência direta dos dados. Quando se utiliza o web caching, o navegador faz a requisição da mesma forma, porém quem recebe e interpreta o pedido é o servidor de web cache. Este procura pela página em seu cache e, caso a possua, avalia sua idade e a compara com a sua data de validade estipulada pelo criador da página ou segundo um conjunto de regras estipuladas pelo próprio servidor de web cache. Caso a página ainda seja válida, a envia ao cliente; caso contrário, redireciona o cliente à página original e cria em seu cache uma cópia da mesma.

Um problema que pode ocorrer é dado pelo chamado balanço de carga: para dividir o trabalho entre servidores distintos, um mesmo conteúdo é reescrito em URLs semelhantes, mas não iguais. Por exemplo, em [6] é dado o exemplo de uma mesma imagem armazenada em 3 diferentes servidores do Orkut:

http://img1.orkut.com/imagem1.jpg (1)

http://img2.orkut.com/imagem1.jpg (2)

http://img3.orkut.com/imagem1.jpg (3)

Como o Squid trabalha através de URLs, ele entenderia que são 3 arquivos diferentes, o que causaria muito mais transferências do que necessário. Sendo assim, há softwares como o InComum [7], que podem ser programados para dar ao Squid a habilidade de reconhecer essa similaridade.

O processamento da URL para detectar a uniformidade pode ser bastante complexo, uma vez que a URL pode conter muito mais informações do que aquela do nome do servidor e do arquivo. Podem haver, por exemplo, informações para controle da sessão.

Conclusão


A arquitetura complexa e gigantesca de sistemas como o da Wikimedia[8], fundação que atende os projetos Wikipedia, Wikidictionary, entre outros, só é realizável devido à existência de formas para minimizar o tráfego interno e externo, através do Squid.

A imagem mostra um grupo muito grande de servidores formando um cluster, no qual há vários servidores Squid.
Servidores da Wikimedia[/caption]

Referências


[1] It's the Latency, Stupid
http://www.stuartcheshire.org/rants/Latency.html
Visitado em 31/05/2010

[2] Largura de banda
http://pt.wikipedia.org/wiki/Largura_de_banda_%28telecomunica%C3%A7%C3%B5es%29
Visitado em 31/05/2010

[3] Acordo de nível de serviço
http://pt.wikipedia.org/wiki/Acordo_de_N%C3%ADvel_de_Servi%C3%A7o
Visitado em 31/05/2010

[4] Streaming Definition
http://www.techterms.com/definition/streaming
Visitado em 31/05/2010

[5] Squid: Optimising Web Delivery
http://www.squid-cache.org/
Visitado em 31/05/2010

[6] Cache efetivo de vídeos do Youtube com Squid
http://www.lucianopinheiro.net/portal/?q=node/130
Visitado em 31/05/2010

[7] inComum
http://sourceforge.net/projects/incomum/
Visitado em 31/05/2010

[8] Wikimedia servers
http://meta.wikimedia.org/wiki/Wikimedia_servers
Visitado em 31/05/2010

Saiba mais

Abordagens mais aprofundadas sobre web caching



[9] Web caching
http://www.ccda.biz/web/about/ac123/ac147/ac174/ac199/about_cisco_ipj_archive_article09186a00800c8903.html
Visitado em 31/05/2010

[10] Introdução ao Cache de Web
http://www.rnp.br/newsgen/0003/cache.html
Visitado em 31/05/2010

[11] Making the Most of Your Internet Connection
http://www.web-cache.com/
Visitado em 31/05/2010

Relação entre web caching e QoS


[12] ENHANCING QoS IN WEB CACHING USING DIFFERENTIATED SERVICES
http://www.tmrfindia.org/ijcsa/V3I17.pdf
Visitado em 31/05/2010

quarta-feira, 2 de junho de 2010

Cidades digitais -- tentativa de definição

Hilton Garcia Fernandes



Cidade digital é um termo que tem alguma popularidade. Talvez por isso, tem significados diferentes para diferentes pessoas. Para o Ministério das Telecomunicações, por exemplo, em [1], qualquer cidade que tenha conexão com a Internet é uma cidade digital. Devido à universalização das telecomunicações, praticamente qualquer cidade brasileira tem acesso à Internet -- mesmo que tenha que fazer uma ligação interurbana ao ponto de presença de Internet mais próximo, como tem sido o caso de cidades até mesmo de Minas Gerais.

Para outras pessoas, cidade digital é cidade que tem presença marcante na Internet, muitas vezes através de portais de governo eletrônico [2], ou e-gov, onde a população pode solicitar serviços da prefeitura e acompanhar online a prestação de contas da prefeitura.

André Lemos [3], pesquisador da UFBA, publicou artigo [4] onde levanta os vários significados possíveis do termo no uso cotidiano e acadêmico. Juliano Castilho Dall'Antonia [5], pesquisador do CPqD, fez apresentação [6] no evento Wireless Mundi 5 [7] onde lançou a noção de uma hierarquia de implementações de características de uma cidade digital, que começa com o acesso básico e chega até à cidade digital plena.

Neste texto, vamos seguir abordagem prática de identificar o termo cidade digital com o uso mais corrente no contexto dos técnicos brasileiros, no qual cidade digital significa uma cidade amplamente coberta por uma rede sem fio integrada, que permite acessar a Internet, em geral oferecida gratuitamente pela municipalidade, ou por uma organização não governamental (ONG), caso em que o acesso pode ter um custo, em geral muito baixo.

Para evitar a ambiguidade do termo cidade digital, nos EUA tem sido adotado o termo municipal wireless network [8], ou rede municipal sem fio, que eles preferem abreviar por municipal wi-fi, ou até muni wi-fi, devido ao fato de que hoje as redes que chegam ao cidadão sejam normalmente do tipo chamado Wi-Fi [9].

Pela amplitude da oferta de acesso à Internet e por seu baixo custo, redes desse tipo têm um impacto grande na comunidade, tanto em termos educacionais, quanto em termos empresariais, como até turísticos.

A respeito do impacto na educação, a cidade de Sud Mennucci-SP [10] é um bom exemplo brasileiro, pois seus estudantes têm tido bons resultados quando comparados com estudantes de cidades maiores [11]. E também é por razões semelhantes que várias iniciativas educacionais como o OLPC (One Laptop per Child) [12] têm usado a informática na educação com amplo acesso à Internet [13].

Quanto ao incentivo às empresas que essas redes oferecem, pode-se citar desde um resultado de econometria que mostra que as empresas são atraídas por empresas com maior infraestrutura em informática, do mesmo modo que são repelidas por cidades com menor infraestrutura [14]. Além disso, no caso do Brasil, cidades como Quissamã-RJ [15], têm recebido interesse de empresas graças a sua facilidade de acesso à Internet, hoje muito importante para os negócios.

Quanto ao incentivo para o turismo, o exemplo brasileiro de Tiradentes-MG [16] é relevante. Esta cidade turística passou a ser mais considerada por turistas que, mesmo em viagem, não querem perder o contacto com o resto do mundo através da Internet. O que talvez signifique duas coisas: uma que, no mundo competitivo de hoje, as pessoas talvez não possam se isolar do trabalho mesmo durante suas férias; ou então, que hoje a Internet se usa a Internet não apenas para trabalhar, mas para sua convivência pessoal. Naturalmente, uma opção não exclui a outra.

Proposta de conceito

Nossa proposta de cidade digital é apenas aplicar o conceito que está muito divulgado em propostas como aquela de Tiradentes [16]. Ele pode ser resumido na matéria [17] do portal How stuff works [18] (ou "como as coisas funcionam"): um conjunto de equipamentos do tipo AP [18], eventualmente conectados em malha [19], nos quais alguns têm o papel de gateways e se comunicam com a Internet. Isto pode ser resumido na imagem a seguir, trazida de [17], na qual a linha traçada em azul mostra o acesso à Internet, o que é chamado de backhaul [20].
Esquema simplificado de rede mesh

Crítica do conceito

Tem havido uma reflexão na Web em português a respeito de uma cidade digital ser mais do que sua infra-estrutura [21]. É de bom senso que se cria uma cidade digital para obter incrementos em educação, empreendedorismo e atividade econômica, como já mostram os casos clássicos brasileiros já comentados antes. Contudo, em nenhuma das páginas Web encontradas há clareza sobre o que realmente seria esse algo mais. Trata-se principalmente de uma listagem de propostas gerais de e-gov, principalmente na saúde, com aplicação da Internet à educação etc.

Um conceito que pareceria frutífero é o de cidades inteligentes [22]. Uma cidade inteligente seria uma cidade capaz de se organizar para atuar de modo inteligente; uma cidade inteligente pressupõe na base uma cidade digital, inteiramente conectada por uma rede única, em geral digital, conforme descrito antes.

Contudo, o conceito de cidade inteligente até aqui levou principalmente a estudos especulativos e também não parece indicar soluções práticas -- por isto é insuficiente para o administrador público. Assim, estudos na linha da economia do desenvolvimento regional, ou Estudos Regionais [23] parecem ter capacidade propositiva -- já sendo encampados por instituições como o SEBRAE [24]. Estudos nesta linha fazem avaliação bem informada e fundamentada de ações de redução da exclusão digital aplicadas nos EUA [25].

Concluindo, parecem ser necessários estudos e práticas baseadas no conceito de cidade inteligente [22], mas calcados nos impactos das cidades digitais na economia, que tem sido feitos nos EUA [25], que seguem a linha dos estudos regionais [23]. O SEBRAE-SP já iniciou trabalhos em linha próxima a esta [24].

Referências

[1] As cidades digitais no mapa do Brasil: Uma rota para a inclusão social
http://www.cpqd.com.br/component/docman/doc_download/146-as-cidades-digitais-no-mapa-do-brasil.html
Visitado em 13/05/2010

[2] São Paulo é a cidade mais digital da América Latina, aponta pesquisa
http://idgnow.uol.com.br/internet/2009/10/27/sao-paulo-e-a-cidade-mais-digital-da-america-latina/
Visitado em 14/05/2010

[3] Carnet de Notes -- Bios
http://andrelemos.info/about/
Visitado em 14/05/2010

[4] O que é Cidade Digital?
http://www.guiadascidadesdigitais.com.br/site/pagina/o-que-cidade-digital
Visitado em 14/05/2010

[5] Juliano Castilho Dall'Antonia
http://dgp.cnpq.br/buscaoperacional/detalhepesq.jsp?pesq=0822860019291028
Visitado em 14/05/2010

[6] O que esperar de uma Cidade Digital Plena
http://www.arede.inf.br/images/stories/arquivos/wirelless_mundi/5wirelessmundi/julianodallantonia-cpqd.pdf
Visitado em 14/05/2010

[7] 5º Wireless Mundi
http://www.arede.inf.br/inclusao/component/content/article/2040-5-wireless-mundi
Visitado em 14/05/2010

[8] Municipal Wireless Network
https://secure.wikimedia.org/wikipedia/en/wiki/Municipal_wireless_network
Visitado em 14/05/2010

[9] Wi-Fi
https://secure.wikimedia.org/wikipedia/en/wiki/Wi-Fi
Visitado em 14/05/2010

[10] Sud Mennucci (São Paulo)
https://secure.wikimedia.org/wikipedia/pt/wiki/Sud_Mennucci_%28S%C3%A3o_Paulo%29
Visitado em 14/05/2010

[11] LETRAMENTO E INCLUSÃO DIGITAL: A INFLUÊNCIA DA INTERNET NA CONSTRUÇÃO DOS HÁBITOS DE LEITURA DE ALUNOS DE EJA
http://www.alb.com.br/anais16/sem01pdf/sm01ss08_06.pdf
Visitado em 14/05/2010

[12] One Laptop per Child
https://secure.wikimedia.org/wikipedia/en/wiki/Olpc
Visitado em 14/05/2010

[13] Information and communication technologies in education
https://secure.wikimedia.org/wikipedia/en/wiki/Information_and_communication_technologies_in_education
Visitado em 14/05/2010

[14] EFFECT OF ODA IN INFRASTRUCTURE IN ATTRACTING FDI INFLOWS IN VIETNAM
http://www.grips.ac.jp/vietnam/VDFTokyo/Doc/39PTHien15Dec07PPT.pdf
Visitado em 14/05/2010

[15] Quissamã
https://secure.wikimedia.org/wikipedia/pt/wiki/Quissam%C3%A3
Visitado em 14/05/2010

[16] Tiradentes (Minas Gerais)
https://secure.wikimedia.org/wikipedia/pt/wiki/Tiradentes_%28Minas_Gerais%29
Visitado em 17/05/2010

[17] How Municipal WiFi Works
http://computer.howstuffworks.com/municipal-wifi.htm
Visitado em 19/05/2010

[18] How Stuff Works
http://computer.howstuffworks.com
Visitado em 19/05/2010

[19] Wireless Access Point
https://secure.wikimedia.org/wikipedia/en/wiki/Access_point
Visitado em 19/05/2010

[20] Redes mesh e grafos
http://tecnologiassemfio.wordpress.com/2010/02/19/plano-nacional-de-banda-larga-primeiras-ideias/
Visitado em 21/05/2010

[21] Por que fazer uma cidade digital?
http://www.cpqd.com.br/imprensa-e-eventos/the-news/4347-por-que-fazer-uma-cidade-digital.html
Visitado em 19/05/2010

[22] Intelligent city
https://secure.wikimedia.org/wikipedia/en/wiki/Intelligent_city
Visitado em 21/05/2010

[23] Regional science
https://secure.wikimedia.org/wikipedia/en/wiki/Regional_science
Visitado em 19/05/2010

[24] Estudos regionais | Portal SEBRAE-SP
http://www.sebraesp.com.br/conhecendo_mpe/setoriais_regionais/regionais
Visitado em 21/05/2010

[25] Measuring broadband's economic impact
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.86.7956&rep=rep1&type=pdf
Visitado em 21/05/2010