Por que eu devo ler este artigo:

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.

Nota: A principal vantagem de uma aplicação inteligente no client-side é trazer a experiência desktop para aplicações web.

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

...
Fim do trecho gratuito • continue abaixo
CONTEÚDO EXCLUSIVO

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
até 50% OFF
A partir de
R$ 69 /mês
Assinar agora