Connection Manager - o dono das conexões!

Como havia comentado, nos últimos dias surgiram várias questões sobre a forma com que o Windows Mobile trabalha com conexões de dados na rede celular e, acabei tendo que fazer uma revisão de todo o processo. Aproveitando a oportunidade, vou colocar alguns artigos sobre o assunto - pode ser útil para os fabricantes/operadoras e, porque não, para empresas e desenvolvedores.

As conexões de dados em um dispositivo Windows Mobile são gerenciadas pelo... Gerenciador de Conexões! Ou, para impressionar a galera, Connection Manager. A idéia é que, para o usuário final, o processo de conexão com a rede celular seja transparente - o usuário não deve se preocupar com o tipo de rede, proxy, vpn, etc. que ele precisa para acessar o site xyz.com, por exemplo. Basta ele iniciar o Internet Explorer Mobile, entrar com o endereço e o device se encarrega do resto.

Gostaria de dividir esse tema nos seguintes "capítulos":

Antes de mais nada, vamos fazer uma revisão do básico da rede de dados celular.

O meu WAP roda sobre GPRS na sua GSM?!?

Longe de tentar explicar os detalhes de uma rede celular, gostaria de fazer uma introdução super resumida das diferenças entre os diferentes tipos de conexão de dados para celular.

No GSM podemos ter algumas formas de conexão de dados com a rede celular. A primeira, que inclusive já era disponível no antigo TDMA, é conhecida como Circuit Switched Data (CSD): a conexão CSD é basicamente a conexão discada do mundo PC, ou seja, uma conexão de dados sobre um canal de voz! Lembra quando você conecta na Internet usando linha discada? Lembra do barulho típico do início da conexão? É a mesma coisa no CSD, estamos trasmitindo dados através de "sons" pelo canal de voz. A única vantagem da conexão CSD (ao meu ver) é que onde houver sinal de voz, em teoria você consegue uma conexão de dados. Desvantagens? Velocidade baixa (aprox 14kbps) e custo, uma vez que você está pagando por tempo de uso da rede, independente da quantidade de informação que está trafegando.

Como parte do padrão GSM temos o , ou GPRS (General Packet Radio Service): uma conexão de dados baseada em pacotes. Neste caso o celular não usa o canal de voz para transmissão de dados e sim o... "canal de dados" :-) Na verdade, em uma rede de pacotes, é possível que o celular transmita dados e voz ao mesmo tempo, você poderia estar falando com alguém e ao mesmo tempo "baixando" os emails - essa funcionalidade depende do fabricante e do modelo do aparelho (Classe A, se não me engano). Outro ponto interessante é que a operadora pode escolher ou não colocar GPRS em uma ERB (Estação Radio Base - aqueles antenas que a gente vê pela cidade), o que significa que você poderia ter sinal de voz, poderia fazer/receber chamadas, mas não poderia acessar a web ou enviar um email, por exemplo. Por sorte as operadoras, na maioria das vezes escolhe habilitar o GPRS em todos os pontos. No Smartphone é fácil perceber isso: aquele peque "G" que fica na barra superior da tela mostra que o GPRS está disponível na rede.

A grande vantagem do GPRS é que pagamos pelo tráfego de dados e não pelo tempo que estamos conectados! Por exemplo, posso passar o dia todo com o Messenger do meu Smartphone conectado e não pagar uma fortuna por isso, uma vez que só serei "bilhetado" quando estiver conversando com alguém (desconsiderando o heartbeat do Messenger que o mantém conectado). Além disso a banda é um pouco maior, 170kps (teórico, na prática uns 30 a 60 kbps).

A conexão WAP (Wireless Application Protocol) surgiu como uma alternativa para "acesso à Internet" - alguém lembra da mensagem que as operadoras usavam? "WAP, a Internet no seu ceular"! Quem vivenciou esse período sabe que não foi bem isso... :-) Antes das GSMs, a conexão WAP era feita sobre CSD, passando pelo famoso WAP Gateway, um "trocador" de protocolos, o celular falava WTP/WTLS até o WAP Gateway, que convertia para HTTP/HTTPS para acessar o site, e na volta convertia novamente para WTP/WTLS. E os sites tinham que ser desenvolvidos em WML (Wireless Markup Langague), um markup bastante limitado.

Com a chegado do GPRS, a conexão WAP foi "turbinada", em vez de usar CSD hoje as operadoras usam o GPRS como meio de tranmissão. Surgiu também o WAP 2.0, que permite conexão HTTP ponto-a-ponto, sem a necessidade do WAP Gateway. Além disso, no WAP 2.0, o markup passa a ser uma versão reduzida do xHTML.

Acima do GPRS, temos o EDGE (Enhanced Data rates for GSM Evolution), com uma velocidade (teórica) de 384kbps - começa a ficar interessante. Também é uma conexão de pacotes, permitindo que você fique always on sem pagar muito por isso. Essa banda já abre possibilidades bastante interessantes para aplicativos e soluções. Pergunta: o que você desenvolveria para um celular/PDA acessando a rede a 300kbps?

Agora que comentamos sobre o básico das conexões, vamos verificar como o Gerenciador de Conexões trabalha com elas e como podemos configurar tudo isso. Continuamos no próximo post...

Perguntas, comentários?