artigo webmobile 17 - Introdução ao MobileFaces

Nesse artigo iremos conhecer o MobileFaces, um framework de controle que pode fazer a conversão de páginas da web para dispositivos móveis e vice-versa.

Esse artigo faz parte da revista WebMobile edição 17. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler este artigo em PDF

 

Java Mobile

Introdução ao MobileFaces

 

A internet está se tornando uma importante e indispensável ferramenta para dispositivos móveis. Ela pode ser usada das mais diversas formas, seja como entretenimento através de jogos ou downloads disponíveis na web, como ambiente de compra e vendas on-line (hoje em dia tão comum) ou como ambiente para prestação de serviços, como sites de bancos. Porém, um problema constante para os desenvolvedores é “mover” uma aplicação web para os dispositivos móveis, pois a maioria dos celulares não reconhece HTML.

A Microsoft tem controles móveis que podem fazer a transferência de páginas ASP.NET para dispositivos móveis, no entanto, sistemas desenvolvidos em Java não tinham este controle. O Java EE é o padrão dominante na construção de sistemas web, por dispor de vários frameworks com ótimos componentes, tais como, o JavaServer Faces (JSF), o Tomahawk, o Ajax4JSF e outros, mas por não contar com tal controle, tornava a construção de sistemas web móveis extremamente trabalhosos.

 Pensando nisso, a Ericsson desenvolveu uma plataforma chamada MobileFaces, a qual será apresentada nesse artigo.

Conhecendo o MobileFaces

O MobileFaces é um framework de controle que pode fazer a conversão de páginas da web para dispositivos móveis e vice-versa. Ele é um projeto Open-Source, aceitando assim, modificações dos usuários em seus códigos. Antes do MobileFaces, o programador que desejasse construir uma aplicação web com Java, tanto para Web browsers, quanto para Mobile browsers era obrigado a replicar suas páginas web utilizando wml (linguagem interpretada por Mobile browsers). Com este framework isto se torna desnecessário, pois o MobileFaces faz a conversão do código de acordo com browser em que está sendo interpretado, ou seja, se for um Web browser, seu código torna-se um HTML, e se for um Mobile browser, seu código torna-se um WML.

 Este Framework é baseado na arquitetura do JavaServer Faces, como é mostrado na Figura 1, e é compatível com qualquer implementação do JSF. Para isso, contém adaptadores de mídia, conversores de imagens, filtros, entre outros, sempre visando a melhor adaptação das aplicações web para dispositivos móveis.

 

Figura 1 – Arquitetura do MobileFaces

 

O MobileFaces é composto de vários kits de desenvolvimento, entre eles:

·Mobile JSF: Pacote desenvolvido para construção de aplicações com JavaServer Faces (JSF);

·MobileSecurity: Pacote desenvolvido para aplicar autorizações e autenticações para aplicações web móvel, tais como, autenticar sua aplicação de acordo com o protocolo SSL (Secure Sockets Layer), ler Nota 1;

·MobileAjax: É um pacote que combina o uso do Ajax com o JSF, permitindo assim aplicações móveis com o uso de Ajax;

·MobilePortlet: Mostra como usar uma aplicação Portlet, empregando as soluções móveis do MobileFaces.

 

Nota 1. SSL – Secure Sockets Layer

 O protocolo SSL é uma tecnologia de segurança comumente utilizada para codificar os dados trafegados entre o computador do usuário e o um website. Este protocolo, através de um processo de criptografia dos dados, previne que os dados trafegados possam ser capturados, ou mesmo alterados no seu curso entre o navegador (browser) do usuário e o site com o qual ele está se relacionando. Isto garante a segurança entre a troca de informações sigilosas como os dados de cartão de crédito.

 

Agora faremos uma breve apresentação do JavaServer Faces(JSF), para podermos falar do Mobile JSF.

O que é o JavaServer Faces (JSF)?

O JSF é um framework MVC que foi projetado para simplificar o desenvolvimento de aplicações Web. Você deve estar se perguntando, “o que é MVC?”.

O MVC é um padrão de arquitetura de aplicações que visa separar a lógica da aplicação (Model), da interface do usuário (View) e do fluxo da aplicação (Controller), permitindo assim, que a mesma lógica de negócios possa ser acessada e visualizada por várias interfaces.

Diversos frameworks foram desenvolvidos com o intuito de ajudar o programador a implementar o padrão MVC, entre eles estão o Struts, Web-Work, Spring-MVC e o JSF.

Além de uma clara separação entre a visualização e a regra de negócio, o JSF incorpora um modelo de interfaces gráficas baseado em eventos e recursos de navegação e internacionalização.

O JSF utiliza componentes GUI (Graphical User Interface) semelhantes aos do pacote Swing/AWT, como botões, formulários, caixas de texto, etc.

Para mais informações sobre o JSF, acesse http://java.sun.com/javaee/javaserverfaces.

E como o MobileFaces é associado ao JSF?

Da seguinte forma, você pode construir seu sistema Java EE normalmente, utilizando o JSF. Após aplicar o MobileFaces, ele interpreta suas páginas de acordo com as necessidades do browser de cada dispositivo, “re-codificando” suas páginas, como é mostrado na Figura 2.

 

Figura 2 – Comportamento das aplicações desenvolvidas com o MobileFaces

 

Arquivos de configuração do sistema

Sistemas Java para web contam com um arquivo de configurações padrão, o web.xml. Todas as configurações referentes ao sistema constam nesse arquivo, por exemplo, tempo de duração de uma sessão, página inicial da aplicação, mapeamento de servlets e filters, etc. Na Listagem 1 é apresentado como deve ficar o arquivo web.xml com o trecho de configuração do mapeamento do servlet JSF (linhas 3 a 11) e do tempo da seção (linha 13).

 

1.< ?xml version="1.0" encoding="UTF-8"?>

2.< web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

3.< servlet>

4.< servlet-name>Faces Servlet</SERVLET-NAME>

5.< servlet-lass>javax.faces.webapp.FacesServlet</SERVLET-CLASS>

6.< load-on-startup>1</LOAD-ON-STARTUP>

7.</SERVLET>

8.< servlet-mapping>

9.< servlet-name>Faces Servlet</SERVLET-NAME>

10. < url-pattern>*.jsf</URL-PATTERN>

11. </SERVLET-MAPPING>

12. < session-config>

13. < session-timeout>30</SESSION-TIMEOUT>" [...] continue lendo...

Artigos relacionados