No início dos anos 60, o Massachussets Institute of Technology (MIT) desenvolveu para a NASA o computador que permitiu ao homem chegar à Lua. O Apollo Guidance Computer operava com 64 kilobytes de memória a uma velocidade de 0.043MHz. Como o homem conseguiu fazer algo tão incrível, com menos tecnologia disponível do que temos hoje em um smartphone? A resposta é simples: maximizando o uso dos recursos disponíveis.
Vivemos em um período no qual a quantidade de recursos de tecnologia disponíveis parece ilimitada: redes com banda super larga, chips de múltiplos cores, memória de muitos milhões de bytes, telas com centenas de pixels por polegada, e tantas outras características técnicas, que estamos enfrentando dificuldades em saber se esta abundância de recursos é o que precisamos e se estamos utilizando-os da melhor forma possível.
Em mobilidade podemos avaliar o uso de recursos em cinco aspectos: Processamento, Armazenamento, Comunicação (rede), Disponibilidade e Experiência do usuário. Analisemos dois cenários, típicos, parar verificar o melhor uso dos recursos.
No cenário 1 temos um smartphone acessando uma aplicação web. Na web, ou nuvem, a aplicação possui o processamento centralizado em servidores. O armazenamento dos dados está restrito a estes servidores. A comunicação é sobrecarregada pelo "overhead" necessário das páginas HTML. Quanto à disponibilidade, se os servidores falharem ou se a comunicação falhar, a aplicação no smartphone ficará indisponível. Por último, quanto à experiência do usuário, quaisquer instabilidades no servidor ou na rede de comunicação afetarão a usabilidade e a velocidade da aplicação, além de poderem causar falhas no funcionamento do próprio smartphone. Neste cenário, os smartphones operam análogos aos "terminais burros" dos anos 70, mesmo possuindo um poder de armazenamento e processamento infinitamente superior.
Agora, imaginemos o cenário 2, no qual temos uma aplicação instalada nos smartphones. A solução foi construída de tal forma que parte do processamento fica a cargo dos smartphones, já que o armazenamento de parte relevante dos dados são gerenciados e feitos nos próprios aparelhos móveis. A comunicação não possui "overhead", pois só trafega os dados necessários para a aplicação. Caso os servidores ou a comunicação falhem, a aplicação continuará disponível, com as últimas informações que ela já possui, sendo que o impacto depende muito do tipo de aplicação. Finalmente, quanto à experiência do usuário, se ele pouco depender de rede ou dos servidores, a usabilidade e a velocidade estarão mais restritas ao bom funcionamento do smartphone.
Neste segundo cenário fica clara a utilização otimizada da infraestrutura (servidores e rede), por conta da distribuição da necessidade de processamento e armazenamento para os dispositivos. Esta computação distribuída aumenta a complexidade da arquitetura computacional, entretanto permite que o usuário receba a informação de forma confiável, utilizando a capacidade de processamento disponível em suas mãos, efetuando o intercâmbio de dados para que o sistema computacional geral obtenha as informações processadas de forma independente. Ou seja, a soma das partes individuais – poder de processamento de cada equipamento – é maior que a soma do todo. Esta utilização do poder de processamento dos equipamentos de forma distribuída pode ser entendida como uma única aplicação distribuída, ou "nuvem de dispositivos móveis"!
Ter alta disponibilidade de recursos não significa que temos que construir aplicações encarando os mesmos como infinitos! O desafio para os produtores de sofware não pode estar restrito a "entregar" a informação, mas sim a "entregar da melhor forma"! E a melhor forma, a mais produtiva, é aquela que utiliza os recursos disponíveis em sua plenitude, quer seja os 64kb do Apollo Guidance Computer, quer seja os múltiplos "cores" dos smartphones atuais. O uso otimizado de recursos computacionais incrementa a experiência do usuário, aumenta o retorno do investimento nos equipamentos e infraestrutura e barateia como um todo o acesso à informação relevante.
Será que, se utilizássemos os recursos disponíveis atualmente, como os cientistas fizeram com seus recursos para ir à Lua, já estaríamos em Marte?
Cesar Ricardo Bertini, presidente da MC1