Cloud Computing

Ξ 1 comentário

Mobilidade e arquitetura de software

publicado por Cezar Taurion

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.

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.

Autor

Cezar Taurion é head de Digital Transformation da Kick Ventures e autor de nove livros sobre Transformação Digital, Inovação, Open Source, Cloud Computing e Big Data.

Cezar Taurion

Comentários

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes