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.
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
-
Artigo
-
Artigo
-
Artigo