Mobilidade e arquitetura de software

por Cezar Taurion
1 comentário 3 minutos leia
Desafios da Interoperabilidade: A Integração de Dados e Processos

Falamos muito em mobilidade e o desenvolvimento de apps extremamente inovadores para smartphones e tablets. Mas existe um ponto que venho observando que tem sido pouco comentado: o seu impacto na arquitetura de software. O ambiente de desenvolvimento está sendo sacudido pela chegada simultânea de quatro ondas tecnológicas, que juntas causam um verdadeiro tsunami: cloud computing, mobilidade, social business e Big Data.

Estas tecnologias e conceitos mudam de forma radical o “pensar” sistemas e em consequencia os arquitetos de software tem que atualizar suas visões de como construir seus sistemas. As grandes aplicações monolíticas e mesmo o já tradicional modelo mental do client-server de duas ou três camadas não tem muito mais espaço neste cenário.

Por outro lado, este cenário turbina um conceito que foi muito falado e pouco implementado que é o SOA (Services Oriented Architecture). Interessante que há poucas semanas, em uma palestra em uma conhecida universidade, perguntei sobre SOA e poucos alunos conseguiram definir claramente seus principios. Ou seja, a base fundamental para criarmos os novos sistemas está meio esquecida…Torna-se urgente resgatar seus conceitos.

A mobilidade por si traz novos desafios. Não se deve pensar em apenas replicar para smartphones e tablets os sistemas escritos para o modelo de mouse e teclado. Devemos pensar em sistemas inovadores, que explorem os recursos dos equipamentos móveis como cameras, microfones, giroscópios, acelerômetros, GPS e diversos outros. A multiplicidade de sensores destes equipamentos nos permite criar aplicativos que capturem e processem dados oriundos das mais diversas fontes. Isto por si é um desafio, pois os diversos fabricantes configuram estes recursos de formas diferentes. Além disso, estes recursos podem gerar volumes de dados significativos como os videos.

Eventos tech no Brasil Agenda monitorada pelo Virtual Arena AI
Ver agenda completa →

Também as interfaces via reconhecimento de voz e som demandam novas maneiras de pensar os aplicativos. Os programas têm que explorar a capacidade do próprio dispositivo, mas também precisam da imensa capacidade computacional que estará rodando em background, em nuvens. Um exemplo, um app que grave um video e o envie para processamento na nuvem para que seja feito um reconhecimento de imagens que identifique determinado individuo ou produto neste video e forneça caracteristicas sobre ele.

Outra análise a ser feita para as aplicações móveis é o grau de computação que deverá ser feito offline, quando o acesso à rede não for possivel. Pode acontecer da app ter que operar em determinados momentos em locais onde o sinal seja muito fraco ou mesmo sem possibilidade de conexão à Internet. Na prática podemos pensar em um modelo mais flexível que o cliente servidor. A grande capacidade computacional de um smartphone ou tablet permite que ele seja em determinados momentos cliente de servidores na nuvem (client-cloud) e em outros atue como seu próprio servidor no modelo server-server. A sincronização com a nuvem deverá ser feita quando a conexão se restabelecer, de forma automática e transparente para o usuário da app.

O modelo server-server demanda uma análise mais aprofundada dos mecanismos de segurança que serão adotados no dispositivo móvel, bem como as diferentes estruturas de dados que deverão ser acomodadas. Novo desafio: os arquitetos não poderão mais pensar apenas em modelos relacionais! O modelo relacional será apenas um dos diversos modelos de dados que os sistemas adotarão.

Outro desafio: criar arquiteturas para apps híbridas, adotando HTML5 e código nativo para Android, iOS e Windows. Isto implica em conhecimentos não apenas de HTML5, mas também da tecnologia específica dos demais ambientes móveis, como dos diversos meios de comunicação destes dispositivos com a nuvem. Por exemplo, se o acesso for a partir da parcela nativa do app deverá ser feita via API específica da plataforma. Se for a partir do codigo HTML5 será via Ajax ou Web Sockets. Enfim, são decisões arquitetônicas que deverão ser tomadas antes de se escrever o código.

O resumo da ópera: a mobilidade abre um novo e desafiador espaço para os arquitetos e desenvolvedores de software. Vai exigir mais estudos e novas práticas, mas o resultado será compensador. Novas e inovadoras apps e com certeza, para os que se aprofundarem nas tecnologias, maior empregabilidade.

Você tabém pode gostar

Deixe um comentário