Este artigo apresenta o conceito de aplicações inteligentes no client-side, comparando com outros tipos de aplicações web. Em seguida, decorre sobre o estilo arquitetural REST, o formato de dados JSON, o padrão arquitetural MVC e faz um comparativo de aplicações inteligentes no client-side com frameworks web em Java. Então, apresenta a biblioteca Backbone.js e seus principais conceitos, como Models, Collections, Views e Routers, além de templates usando Handlebars.js. Finalmente, introduz o Play Framework para implementar o server-side baseado em REST e JSON.
Este tema é útil para os desenvolvedores Java que precisam trazer a experiência desktop para suas aplicações web, reduzindo o tempo de resposta e navegação e também organizando propriamente o código JavaScript a partir de uma estrutura inspirada no padrão arquitetural MVC.
Pare e reflita: com tantos frameworks Java para facilitar o ciclo de vida de aplicações web, falar sobre aplicações inteligentes no client-side não seria andar na contramão? Além disso, o que seria uma aplicação inteligente no client-side e como é sua arquitetura?
Este autor que vos escreve publicou o artigo “O que preciso saber sobre HTML 5?” na Edição 116 da Java Magazine, apresentando o HTML 5 como uma alternativa ao desenvolvimento baseado exclusivamente no server-side. Esta tecnologia introduz e padroniza diversas funcionalidades inovadoras no navegador ou dispositivo móvel cliente, de forma segura, portável e nativa.
Tal artigo apresentou ainda dois pares de conceitos que não são sinônimos, apesar de serem confundidos muito frequentemente: front-end e back-end versus client-side e server-side. Veja a seguir:
· Front-end e back-end descrevem o tipo da ação a ser realizada:
o Front-end é a parte da aplicação que interage com o usuário;
o Back-end é a parte da aplicação que contém lógica de negócio e acesso aos dados, geralmente expostos como serviços;
o Observação: um front-end pode comunicar-se com múltiplos back-ends. Já um back-end pode servir a múltiplos front-ends e também a outros back-ends.
· Client-side e server-side descrevem onde a ação é realizada:
o Client-side é o lado da aplicação que roda dentro do navegador ou dispositivo do usuário;
o Server-side é o lado da aplicação que roda em um servidor;
o Assim como o caso acima, um client-side pode comunicar-se com múltiplos server-sides. Já um server-side pode servir a múltiplos client-sides e também a outros server-sides.
Observamos que, historicamente, aplicações web feitas em Java executam o front-end no client-side e o back-end no server-side. Simples assim. Neste artigo, apresenta-se uma alternativa onde tanto o front-end quanto parte do back-end são executados no client-side, com a alcunha de aplicação inteligente no client-side. Neste tipo de aplicação, o back-end do client-side também se comunica com um segundo back-end, agora no server-side.
Trazer a experiência desktop para aplicações web significa reduzir o tempo de resposta e de navegação. Além disso, uma aplicação inteligente no client-side trabalha sem depender de plug-ins, através de uma única base de código-fonte client-side independente de dispositivo e plataforma, ou seja, que pode funcionar tanto em computadores quanto em dispositivos móveis.
Ainda, convém pensar que aplicações web, mesmo sendo compostas por diversas camadas e componentes, representam um único conceito para o usuário final. Para ele, é muito mais interessante utilizar um produto que responda rapidamente aos seus estímulos e proporcione boa usabilidade, onde quer que ele esteja rodando.
Ok, posso já ter convencido alguém sobre investir no desenvolvimento de aplicações inteligentes no client-side. Mas como isto funciona na prática? Como seria sua arquitetura? E como esta solução difere-se dos frameworks que gerenciam o ciclo de vida web como o Struts? Confira a seguir.
Arquitetura de aplicações web no client-side
...Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais
Confira outros conteúdos:
Introdução ao JDBC
Novidades do Java
Teste unitário com JUnit
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.