Você está na página 1de 6

ESTUDO COMPARATIVO ENTRE FRAMEWORKS PARA

DESENVOLVIMENTO DE RIAs

César Edenir Balzer, Gustavo Batalha1, Adriano Ferrasa2


Faculdade Educacional de Ponta Grossa
Faculdade União

RESUMO:
Com o avanço das tecnologias voltadas para a internet, foi possível explorar funcionalidades antes
disponíveis somente em aplicações ditas “desktop”, trazendo-as ao ambiente da rede global de
computadores, onde a utilização destas pode ocorrer em escala mundial. Muitas tecnologias
surgiram para tentar solucionar problemas emergentes a cada momento. Uma das mais bem
sucedidas foi a linguagem Java, a qual é uma linguagem de programação simples, orientada a
objetos e segura. O uso de frameworks de componentes vem a aumentar a produtividade de
aplicações, reduzindo custos e tempo de desenvolvimento. O presente trabalho vem a realizar um
estudo comparativo entre os principais frameworks para desenvolvimento de aplicações ricas para a
internet (RIAs) através da linguagem Java.

Palavras-chave: Java, frameworks, RIAs.

1. INTRODUÇÃO

Redução de custos e tempo de desenvolvimento, maximização de re-uso e menor


manutenção são itens indispensáveis no atual cenário de desenvolvimento de sistemas. O uso de
frameworks3 de componentes vem a atender este cenário, facilitando a implementação, pois estas
são desenvolvidos provendo funcionalidades genéricas, específicas por configuração. Durante o
desenvolvimento de uma aplicação, um framework dita o fluxo de controle da mesma fornecendo
métodos e funcionalidades prontas para o uso.

Com o avanço das tecnologias voltadas para a internet, foi possível explorar funcionalidades
antes disponíveis somente em aplicações ditas “desktop”, trazendo-as ao ambiente da rede global
de computadores, onde a utilização destas pode ocorrer em escala mundial. Aplicações para internet
que possuem estas características são denominadas RIAs (Rich Internet Applications).
(MACROMEDIA, 2010)

1 Acadêmicos do 4. período do curso de Tecnologia em Sistemas para Internet – Faculdade União.


2 Professor MsC – Faculdade União.

3Padrão arquitetural que provê um ‘template’ extensível para aplicações dentro de um certo domínio. (BOOCH apud SPARLING,
2000)
No contexto de programação voltada para a internet, a linguagem Java vem a possuir papel
de grande importância por ser uma linguagem de programação simples, orientada a objetos e
segura. Neste espaço figuram inúmeros frameworks voltados a aplicação utilizando-se da
linguagem Java como Vaadin, e JSF. Sendo assim, o presente trabalho vem realizar um estudo
comparativo entre os principais frameworks para desenvolvimento de RIAs através da linguagem
Java.

2. FRAMEWORKS

A utilização de frameworks de componentes voltados a web fornecem um desenvolvimento


de aplicações web dinâmicas e serviços reduzindo o tempo gasto com atividades comuns no
desenvolvimento web como criação de interface de usuário ou acesso a base de dados.
Uma das tecnologias mais empregadas para prover uma experiência mais próxima de um
aplicativo desktop em um ambiente internet é conhecida como AJAX (Asynchronous Javascript
And XML). Ajax é o uso metodológico de tecnologias como Javascript 4 e XML5 , fornecidas por
navegadores, para tornar páginas web mais interativas com o usuário, utilizando-se de solicitações
assíncronas de informações (AJAX, 2010). Grande parte dos frameworks voltados a criação de
aplicações web utilizam-se desta tecnologia. Neste item serão descritos os frameworks para
desenvolvimento Vaadin e JSF (ICEFaces e RichFaces).

2.1 Vaadin

Vaadin é um framework para desenvolvimento de aplicações ricas para web utilizando-se da


linguagem Java. Fornece componentes de interface bastante otimizados, e uma estrutura que vem a
prover fácil implementação de código de forma clara e agilidade no processo do desenvolvimento
de aplicações.
Este framework atua como uma arquitetura do lado do servidor. A tecnologia AJAX é
utilizada no lado do cliente fornecendo desta forma, um nível maior de interatividade para usuário
final. Utiliza o Google Web Toolkit (GWT) para geração a página visualizada pelo usuário.
Diferente da maioria dos frameworks para criação de aplicações RIA, os códigos escritos em
Vaadin são totalmente em Java, não é necessário conhecer nenhuma outra tecnologia como HTML,
Javascript e XML (Extensible Markup Language). O desenvolvedor codifica a aplicação em Java e
o Vaadin realiza a conversão para HTML e AJAX , cuidando da gestão de comunicação entre o
browser e o servidor. Como o Vaadin esconde toda a complexidade do AJAX, os desenvolvedores
podem se concentrar na lógica de suas aplicações sem precisar se preocupar com problemas comuns
ao desenvolvimento web, como por exemplo, a capacidade da aplicação funcionar em múltiplos
navegadores (VAADIN, 2010).

2.2 JSF (Java Server Faces)

4 Javascript: linguagem de programação executada através de um navegador web. Utilizada principalmente para
interação com páginas web.

5 XML (eXtensible Markup Language): recomendação da W3C para gerar linguagens de marcação para necessidades
especiais.
A aplicação do padrão arquitetural MVC6 no desenvolvimento de aplicações web trouxe
inúmeras vantagens como facilidade de implementação e maior reutilização de código. Este
modelo foi aplicado a linguagem Java através da criação de uma especificação oficial MVC para a
mesma. A comunidade Java através do JCP (Java Community Process), criou um pedido de
especificação denominado JSR 000127 (JCP, 2010) para atender esta necessidade. Desta forma foi
definido o modelo conhecido como Java Server Faces (JSF).
JSF é uma tecnologia que incorpora características de um framework MVC para web e de
um modelo de interfaces gráficas baseada em eventos.
A especificação JSF foi criada para prover um framework de programação confiável e
escalável, construído em sobre a tecnologia Java. Mesmo que estes requisitos sejam fundamentais,
o JSF precisava ter ainda uma outra característica, a de ser bastante produtivo. Os componentes UI 7
fornecem a base para esta produtividade.
O JSF definiu um modelo de componentes, visando facilidade de uso e produtividade. Entre
os modelos que mais se destacam estão as bibliotecas IceFaces e RichFaces.

2.3 ICEFaces

ICEfaces é um framework Ajax aberto que fornece a desemvolvedores de aplicações Java


criar e desenvolver aplicações internet ricas utilizando a linguagem Java.
Ele se mostra muito útil para os desenvolvedores, ajudando na utilização de aplicações JSF
novas ou existentes, com recursos interativos para o usuário no ambiente web.
Pode-se citar como principais características a Ponte Ajax, que facilita o mecanismo de
atualização incremental da camada de aplicação, usando um mecanismo de submissão parcial. O
mecanismo de submissão parcial está presente na arquitetura dos componentes, permitindo ao
desenvolvedor ter controle deste mecanismo a nível de componente (MARYKA, 2010).

2.4 RichFaces (JBoss RichFaces)

É um framework que trabalha com a tecnologia Ajax sobre aplicativos JSF, com ciclo de
vida, validação, gestão dos recursos estáticos e dinâmicos fornecendo assim, uma forte integração
de componentes para aplicações web.
RichFaces fornece dois modelos de bibliotecas para o desenvolvedor: a Core Ajax a qual
define algumas funcionalidades Ajax em páginas existentes permitindo que toda ela esteja com
suporte Ajax que sincronizam os componentes de acordo com os eventos disparados; e UI a qual
são fornece vários modelos de componentes visuais.
RichFaces possui um diferencial em relação aos demais frameworks por permitir uma
abordagem de Ajax orientada por página ao invés, do mais comum, que é orientado a componente
(RICHFACES, 2010). Este diferencial permite que seja definido um evento que faça uma requisição
Ajax em particular e podem ser definidas áreas nesta página que devem ser sincronizadas com a
árvore de componentes JSF, ao contrário da outra abordagem, no qual tudo é centralizado no
componente.

6Model-view-controller (MVC) : padrão de arquitetura de software que visa a separar a lógica de negócio da lógica de
apresentação, permitindo o desenvolvimento, teste e manutenção isolados. (MVC,2010)

7UI (User Interface - interface do usuário): é um conjunto de características com as quais pessoas (usuários), interagem
com o sistema.
3. ESTUDO COMPARATIVO

O presente comparativo vem a expor algumas diferenças entre os frameworks abordados no


item anterior. Tal estudo foi baseado na utilização dos mesmo no desenvolvimento de uma
aplicação simples. Para a avaliação foi determinado quatro critérios básicos, os quais descrevem os
principais pontos observados na escolha de um framework :

1. Facilidade de uso.

2. Uso de Ajax.

3. Compatibilidade entre navegadores.

4. Acabamento de componentes UI.

3.1 Facilidade de uso

Os componentes básicos necessários em aplicações web são encontrados em todos os


frameworks analisados. Entretanto pode-se citar algumas diferenças. Vaadin possui containers para
ligação de dados os quais podem ser utilizados como fonte de dados em componentes UI os quais
são automaticamente alimentados com dados. Icefaces possui alguns efeitos que podem ser
aplicados a componentes como por exemplo slide e shake. Icefaces e RichFaces possuem seu
próprio conjunto de componentes, enquanto que Vaadin possui integrado Google GWT para gerar a
interface de usuário. Todos os frameworks permitem a criação de componentes personalizados.

3.2 Uso de Ajax

Icefaces e RichFaces utilizam o modelo Ajax para comunicação. Vaadin também utiliza
Ajax para comunicação, mas possui uma pequena diferença frente a estes frameworks: a interface
do Vaadin é construída no próprio servidor e enviada para o cliente que é responsável em construir
os widgets 8 informados. Ou seja, se é necessário apresentar uma lista (componente combobox) na
tela contendo as informações de uma tabela, esta é preenchida no servidor e o Vaadin envia ao
cliente a ordem: crie um combobox com os dados informados. Vale observar que todo evento
lançado por um widget também é tratado no servidor.

3.3 Compatibilidade de navegadores

Desenvolvedores não precisam pensar em incompatibilidades entre navegadores internet.


Em nenhum dos frameworks analisados é necessário implementar códigos Javascript ou HTML,
porém a forma de desenvolvimento difere um pouco. Quando implementando utilizado Vaadin, a

8 Widget: um componente de uma interface gráfica do usuário.


forma é idêntica ao modelo de programação de uma aplicação desktop Java utilizando componentes
Swing. Isto torna-se familiar a grande maioria dos programadores Java. Icefaces e RichFaces
seguem o modelo de página em arquivos JSP9 os quais são conectados a componentes do lado
servidor que cuidam das funções de controle.

3.4 Acabamento de componentes UI

Dentro deste item a análise ocorre de forma visual, tomando-se como parâmetro detalhes
dos principais componentes existentes nos frameworks analisados. Todos os componentes possuem
ótimo acabamento, porém Vaadin e IceFaces possuem uma aparência mais limpa e clara, ao
contrário de RichFaces os quais são mais simples, utilizando modelos tradicionais em cores mistas.

4. CONCLUSÃO

O presente trabalho explorou os principais frameworks para desenvolvimento de aplicações


ricas para a internet através da linguagem Java, suas características e diferenças.
O uso destes frameworks vem a facilitar a construção de aplicações web, principalmente
quanto a interface de usuário: com sua utilização o esforço antes despendido pela complexidade de
criação das interfaces gráficas agora é deixado de lado pela facilidade de desenvolvimento destas,
direcionando este tempo para a implementação da lógica de negócios envolvida na aplicação.
Um ponto importante para desenvolvedores de aplicação é a documentação. Esta foi
facilmente encontrada com demonstrativos de componentes, códigos fonte e exemplos com
interação do usuário rodando na web para todos os frameworks.
O principal ponto forte do Vaadin é o modelo de programação, similar a programação de
uma aplicação desktop em Java, podendo possuir um simples arquivo de configuração. Icefaces e
RichFaces usam lógica JSF na estrutura da aplicação e necessitam visualizadores, componentes de
base e configurações especiais os quais fazem o mapeamento entre as camadas da aplicação, ao
contrário do Vaadin o qual necessita apenas de um simples arquivo de configuração.
Quando um projeto cresce, este fato pode ser uma fraqueza ou ponto forte, dependendo o
que deseja-se no projeto. Se já existe um grande projeto de uma aplicação web JSF a solução mais
conveniente é convertê-la para Icefaces ou RichFaces.
O resultado final é que todos os frameworks analisados satisfazem a maior parte das
aplicações web atuais. A maior diferença reside na forma de desenvolver e manter a aplicação,
podendo ser voltado a código (Vaadin) ou arquivos de configuração (Icefaces e RichFaces)

5. REFERÊNCIAS BIBLIOGRÁFICAS

AJAX. AJAX (programação). <http://pt.wikipedia.org/wiki/AJAX_(programação)>. Acesso em


21 de Outubro de 2010.

9 JSP: tecnologia utilizada no desenvolvimento de aplicações para Web, similar às tecnologias Active Server Pages
(ASP) ou PHP
ICEFACES. ICEFaces.org. Disponível em <http://www.icefaces.org/main/resources/
documentation.iface>. Acesso em 18 de Agosto de 2010.

JCP. JSR-000127 JavaServer Faces. Disponível em <http://jcp.org/aboutJava/communityprocess/


final/jsr127/index2.html>. Acesso em 20 de Outubro de 2010.

MACROMEDIA. Macromedia Flash MX—A next-generation rich cliente. Disponível em


<http://www.adobe.com/devnet/flash/whitepapers/richclient.pdf>. Acesso em: 10 out 2010.

MARYKA, S. Enterprise Ajax Security with ICEfaces. Disponível em: <http://www.icefaces.org/


main/resources/whitepapers.iface>. Acesso em: 10 out 2010.

MVC. Model-view-controller (MVC). <http://pt.wikipedia.org/wiki/MVC>. Acesso em 20 de


Outubro de 2010.

RICHFACES. RichFaces JBoss. Disponível em <http://docs.jboss.org/richfaces>. Acesso em 28 de


Setembro de 2010.

VAADIN. BOOK OF VAADIN. Disponível em <http://www.vaadin.com/book>. Acesso em: 15


Setembro 2010.