segunda-feira, 22 de fevereiro de 2010

Plano Nacional de Banda Larga: primeiras ideias

Hilton Garcia Fernandes



No Brasil, o serviço de acesso à Internet com banda larga não é dos melhores do mundo. Comparado com países similares em desenvolvimento econômico, a banda larga brasileira é mais cara, mais sujeita a falhas e até mesmo tem menor capacidade média do que aquela destes países [1]. Comparações com países europeus ou asiáticos são ainda mais desfavoráveis [2].

A inferioridade brasileira se torna assombrosa à medida que aumenta a distância do eixo Rio-São Paulo [3].

Hoje é fato bem conhecido que a Internet é fator de desenvolvimento econômico e pessoal [4]. Ao ponto de que alguns pesquisadores associam muito fortemente a exclusão digital (dificuldade de usar computadores e Internet) com a exclusão social, a dificuldade de ter acesso ao mercado de trabalho e consumo [5].

Por isso, o Plano Nacional de Banda Larga, ou PNBL [6], é tão importante. Ele é uma iniciativa ampla para reduzir tanto nossa inferioridade (comparada à de outros países), como para reduzir disparidades regionais. Além de sua importância por si, o PNBL interfere em vários pontos do atual modelo de banda larga, o que gera um número infindável de polêmicas [7], sobre o modelo de negócios a ser adotado.

Diante das polêmicas e da importância para o futuro do país, o PNBL merece toda a atenção. Por esta razão, iniciamos com este uma série de entradas, ou posts, no blog Tecnologias sem Fio, para cobrir aspectos relevantes do PNBL.

Como a proposta do PNBL está sendo esperada para o início de março [6], vale aguardar sua formalização e iniciar a sequência pelo lado técnico, o que vai permitir a uniformização dos termos, uma vez que vários dos termos adotados na atual discussão têm significado pouco padronizado, havendo quem os interprete de forma diferente daquela que tem sido usada nas discussões sobre o PNBL.

Em primeiro lugar, vale a pena definir os termos backbone, backhaul e last-mile, pois são chave no desenho das propostas em discussão. Uma forma intuitiva é fazer analogia entre a distribuição de Internet e a distribuição de água tratada. Há grandes adutoras que levam a água de represas, como a Billings a pontos distantes delas. Essas adutoras são tão grandes que sua instalação tende a ser anunciada na imprensa [8].

Para distribuir água até a casa das pessoas, é feita a derivação de adutoras menores. Quem quer que tenha observado escavações nas ruas, terá visto que há adutoras de tamanhos inferiores, que levam a água a prédios. Por sua vez, nos prédios, os canos sofrem outro estreitamento, então chegam à casa das pessoas.

Em termos de terminologia de distribuição de Internet, as grandes adutoras poderiam ser chamadas de core network (ou rede principal), ou backbone [9]. As tubulações que passam pela rua são chamadas de edge network [10], ou "rede periférica". O movimento de informações que é feito nela é chamado de backhaul [10]. E, por último, os canos mais finos que levam a água até a casa das pessoas são chamados de last mile [11].

Estes são termos muito mais práticos do que teóricos e sua definição não é unânime. Por exemplo, Há quem os defina igualando backhaul à movimentação de dados no backbone [12].

Tanto o backbone quanto as edge networks costumavam ser de uma única companhia. Estes são pontos que o PNBL está tentando mudar, em prol de uma maior concorrência na distribuição de Internet, o que, espera-se, deve diminuir os custos e aumentar a qualidade da Internet brasileira.

No próximo post, ou entrada, do blog Tecnologias sem Fio, será feito um maior detalhamento dos modelos de negócios que a discussão do PNBL está fazendo surgir. E, pari passu [13], será mais detalhado o modelo conceitual, ou a arquitetura, da rede mundial de computadores, a Internet.

Referências




[1] Banda Larga: Brasil perde vez na América Latina

Visitado em 19/02/2009


[2] Banda larga no Brasil é 35ª em ranking com 45 países

Visitado em 19/02/2009


[3] O custo da banda larga

Visitado em 19/02/2009


[4] Federal Communications Commission FCC 09-93 Before the Federal Communications Commission Washington, D.C. 20554 In the Matter of Preserving the Open Internet Broadband Industry Practices

Visitado em 19/02/2009


[5] SILVEIRA, Sérgio Amadeu da. Inclusão digital, software livre e globalização contra-hegemônica.

Visitado em 19/02/2009


[6] Telebrás, Eletronet e PNBL (162) - "Reunião do PNBL": Análise de Clóvis Marques

Visitado em 19/02/2009


[7] Telebrás, Eletronet e PNBL (170) - Ainda a "Reunião do PNBL" + O "Anãozinho" + Resumo sobre o FUST + A Lei do FUST (íntegra)

Visitado em 19/02/2009


[8] ADUTORAS

Visitado em 19/02/2009


[9] Internet backbone

Visitado em 19/02/2009


[10] Backhaul (telecommunications)

Visitado em 19/02/2009


[11] Last mile

Visitado em 19/02/2009


[12] Appendix 7: Glossary | Report on Commerce Commission's Local Loop and Fixed PDN Unbundling Investigation

Visitado em 19/02/2009


[13] Pari passu

Visitado em 19/02/2009

quarta-feira, 17 de fevereiro de 2010

Trânsito e redes mesh

Fábio Damião Barbosa Ricci

Em São Paulo, uma pesquisa do Instituto Datafolha [1] revelou que o paulistano perde, em média, 109 minutos por dia no trânsito. Ao todo, 23% dos paulistanos perdem mais de duas horas por dia no trânsito.

Muitos fatores podem contribuir para os congestionamentos, que ocorrem principalmente quando o número de automóveis ultrapassa a capacidade de uma via. O principal fator de origem deste problema é o tempo ocioso que um veículo permanece nas ruas, quando encontra um semáforo sinalizando parada enquanto não há veículos trafegando na via em que se deseja atravessar. Através do controle adaptativo de tempo de sinalização semafórica, é possível otimizar o fluxo de trânsito sem a necessidade de acompanhamento do ritmo de mudanças de condições de tráfego nas vias, promovendo um menor acúmulo de carros com a evolução do tempo.

O projeto SAWIM, desenvolvido pelo autor durante trabalho de conclusão de curso [2] é uma tentativa de resolver esses problemas através de comunicação através por redes sem fio em malha [3], ou Wi-Mesh.

Semáforos têm vantagens enormes como torres para comunicação sem fio: são da prefeitura, o que minimiza custos de aluguel e têm acesso livre uns aos outros. Afinal, os motoristas têm que poder ver os semáforos que, por isso são altos e têm visão desimpedida por obstáculos ao longo das pistas.

Por esta razão, semáforos tem sido usados em cidades digitais como torres para instalação de APs [4] para a rede mesh.

Em poucas palavras, o hardware desenvolvido para o projeto para controlar um semáforo pode ser descrito como:

  • um AP que vai fazer comunicação com outros APs da rede mesh, além de conter software específico para sincronização de APs. O software original do AP (seu firmware) é trocado por um Software Livre que o controla, chamado Freifunk [5]. Sobre este sistema, uma variação do GNU/Linux é que são desenvolvidos softwares específicos para controle de APs;
  • um módulo para controlar o semáforo, ligado ao AP através de de TCP/IP, o que lhe permite passar ao semáforo comandos do AP. Também é capaz de interagir com o sensor de presença e repassar informações dele ao AP;
  • um módulo adicional de presença, que comunica ao módulo de controle o número de carros passando -- normalmente implementado através de sensores no solo. É possível que nem todos módulos do SAWIM possam contar com esse recurso. Neste caso, os módulos do sistema que contam com esse recurso o repassam aos outros.

Tanto AP quanto o módulo de controle estão protegidos das intempéries por uma caixa hermética.

Um ponto importante no projeto é que a tolerância a falhas das redes mesh [3] favorece o projeto, uma vez que semáforos são aplicação de missão crítica.

Uma visita à Transpoquip [6] feira específica sobre trânsito, mostrou que os fabricantes se interessariam muito por uma solução similar àquela do SAWIM. Apesar de questionamentos sobre a maturidade do software para controle dos semáforos -- o SAWIM estaria sendo comparado com sistemas com dezenas de anos de desenvolvimento --, os técnicos das empresas se mostraram interessados na tolerância à falhas da rede mesh.

Uma das razões para isso foi observada recentemente: devido às chuvas, os semáforos da região de Pinheiros deixaram de funcionar. Aparentemente, a água entrou nos fios de comunicação e controle de semáforos.

Edição: Hilton Garcia Fernandes, a partir de texto em [2]

Referências

[1] Paulistanos apóiam transporte público, segundo o Datafolha
Visitado em 12/02/2010

[2] Fabio Damião Barbosa Ricci, Sistema integrado WiMesh para controle, automação semafórica e comunicação com Internet (Sigla: SAWIM) Trabalho de conclusão de curso apresentado na Escola Politécnica da Universidade São Paulo, em 9 de Outubro de 2009. São Paulo, SP, Brasil

[3] Redes mesh e grafos
Visitado em 12/02/2010

[4] Municipal Wireless Broadband and the Digital Community Report — City of Boulder, Colorado October 12, 2006
Visitado em 12/02/2010

[5] Freifunk
Visitado em 12/02/2010

[6] TranspoQuip Latin America 2009
Visitado em 12/02/2010

sexta-feira, 5 de fevereiro de 2010

Apresentação do gvpr

Ricardo Andrade Dalla Bernardina



DOT [1] é uma linguagem que permite definir grafos [2]. Ela foi usada inicialmente no programa de mesmo nome dot, hoje parte do pacote graphviz [3], que tem muitas ferramentas para visualização e manipulação de grafos.

Um exemplo de arquivo para construção de grafos é explicado aqui. A primeira coisa que deve ser feita é dar uma nome para o grafo, e depois de escolhido (supondo que seja g para o exemplo ) colocar:

graph g {}


Tudo que virá depois no arquivo estará dentro das chaves após graph g.

Após isso é necessário criar os nós e para isso escrevemos:
X [label="node"]; -- sendo X o identificador do nó e node o nome do nó.

Podem ser incluídos tantos nós quanto forem necessários.

Após isso, para se colocar as arestas deve-se escrever os identificadores dos nós que estão ligados pela aresta (não está sendo considerado grafo dirigido) e entre eles colocar "--"; isto é: dois hífens seguidos. Por ex.: X -- Y; é a aresta que conecta os nós X e Y.

Após isso é só salvar o arquivo, rodar um programa de visualização como o dot [4] e o grafo estará pronto -- por exemplo, na forma de uma imagem JPEG.

Abaixo encontra-se uma figura do código [5]:
41.jpg

No pacote graphviz encontra-se a ferramenta gvpr [6], muito poderosa, mas pouco conhecida, que permite manipular e -- de forma geral -- reescrever grafos.

Agora será mostrada uma pequena apresentação do programa descstat.g [7], que usa a ferramenta gvpr para calcular o maior grau e menor grau de um grafo qualquer, além de calcular a média, variância, desvio padrão e coeficiente de variação dos graus dos nós dos grafos.

Antes de tudo vale lembrar que o gvpr só interpreta grafos na linguagem DOT, sendo inútil para outras linguagens de definição de grafos. No ambiente gvpr, é definida uma linguagem de programação, que possui os seguintes elementos

  • BEGIN, que é realizado apenas uma vez no começo da programa;

  • END que é realizado apenas no final do programa e uma única vez também;

  • existe também o BEG_G, que é realizado para todos os grafos no começo de cada um;

  • e o END_G, que do mesmo modo é realizado para todos os grafos, só que no final deles;

  • por último tem o N que entra em todos os nós do grafo.



BEG_G e END_G devem estar entre BEGIN e END. Por sua vez, N deve estar entre BEG_G e END_G. A sintaxe de comandos e declarações é bastante similar, quando não igual, àquela do C [8].

Assim no programa descstat.g foram declaradas as variáveis no BEGIN, os valores delas foram inicializados no BEG_G, pois eles devem ser reinicializados no início de cada grafo. Dentro do N são totalizados os graus de todos os nós de cada grafo. O grau de um nó é obtido pela expressão $.degree, onde $ significa o nó atual e degree é o grau do nó. Por sua vez, $G significa o grafo atual. Esses graus são necessários para os cálculos que são o objetivo do programa. Todos eles são finalizados no END_G, que também apresenta os valores na tela. O trecho em N é apresentado a seguir:
N {
if ($.degree > maxd) {
maxd = $.degree;
}

if ($.degree < mind) {
mind = $.degree;
}

mean += $.degree;
var += $.degree * $.degree;
}


Referências



[1] The DOT Language
Acessado em 29/01/2010

[2] Teoria dos grafos
Acessado em 29/01/2010

[3] Graphviz - Graph Visualization Software
Acessado em 29/01/2010

[4] Drawing graphs with dot
Acessado em 02/02/2010

[5] 4.dot
Acessado em 29/01/2010

[6] gvpr(1) - Linux man page
Acessado em 29/01/2010

[7] descstat.g
Acessado em 02/02/201

[8] C (linguagem de programação)
Acessado em 02/02/2010