Artigo WebMobile 2 - Conexão HTTP com J2ME

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Saiba como comunicar aplicações J2ME com servidores remotos.

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

wm2_capa.gif

imagem_pdf.jpg

Conexão HTTP com J2ME

Comunicando aplicações J2ME com servidores remotos

O desenvolvimento de aplicações para celular utilizando o J2ME não é uma tarefa tão complicada. Porém, ainda esbarramos em um grande problema: na capacidade limitada de processamento e de armazenamento de informações. Uma alternativa viável é a utilização de servidores remotos para processar informações e armazenar dados em um repositório central, facilitando o acesso a informações que poderão ser feitos por outros mecanismos.

Celulares e outros dispositivos móveis costumam fazer acesso a dados remotamente utilizando conexões OTA (Over the Air). Esta tecnologia é bastante deficiente, principalmente no que diz respeito à velocidade. Usuários que estão acostumados com conexões rápidas podem ficar entediados pela demora no tráfego de alguns KB. Além do mais, estas conexões podem ser pouco confiáveis e intermitentes.

Entretanto, as empresas operadoras de telefonia móvel no Brasil estão em constante evolução, e já disponibilizam serviços em que é possível trafegar cada vez mais informações em conexões ininterruptas, pagando cada vez menos por este serviço, e ainda oferecendo uma maior abrangência territorial no país.  

O MIDP (profile Java utilizado no desenvolvimento de programas para celular) possui mecanismos genéricos para acesso à rede. Na MIDP 1.0, a conexão pode ser feita apenas por HTTP, através da classe HttpConnection (package javax.microedition.io) - outros protocolos poderiam ser utilizados de acordo com cada fabricante de celular. Já no MIDP 2.0, existem outras maneiras de estabelecer conexão, incluindo o HttpsConnection (HTTP sobre SSL), CommConnection (conexão serial), SocketConnection (permite conexão a um servidor socket) e ServerSocketConnection (inicia um servidor de socket e espera conexões externas).

O presente artigo apresenta a comunicação entre um programa desenvolvido em J2ME e um servlet utilizando o protocolo HTTP (ver Nota 1).

 

Nota 1. Características do protocolo HTTP

HTTP (Hyper Text Transfer Protocol) é o protocolo de transferência de dados utilizado na web e é a base de toda sua funcionalidade. Leve e veloz, foi construído sobre o protocolo TCP/IP, sendo também orientado a conexão. Na verdade, o protocolo HTTP permite que dispositivos e browser conversem com os servidores web, façam pedidos e recebam as respostas em forma de texto através de uma conexão internet. A possibilidade de utilizar o protocolo HTTP está disponível desde a primeira versão do MIDP. A partir do MIDP 2.0 foi disponibilizado o recurso de conexão segura, o HTTPS.

Arquitetura da aplicação

Como vimos, o celular possui recursos limitados e para lidar com isso, podemos acessar recursos disponibilizados remotamente. Nessa situação, o celular seria um cliente que acessa serviços de um servidor (servlet) via conexão http. O servidor pode ser qualquer PC, desde que este tenha instalado um servidor web e possua um IP real. A Figura 1 exemplifica o processo de comunicação celular/servidor.

Foram selecionadas as seguintes ferramentas para o desenvolvimento desta infra-estrutura: o container servlet, que também funcionará como servidor web, foi o Tomcat; a IDE de desenvolvimento Java foi o Gel, disponível para download no endereço www.gexperts.com.br; a ferramenta de desenvolvimento J2ME foi o Wireles ToolKit e o sistema operacional Windows XP. Todas as ferramentas para o desenvolvimento são gratuitas e, com exceção do Gel, todos os outros programas possuem versões para Windows e Linux. 

  image004.gif

Figura 1. Diagrama contendo o fluxo de informação entre o aplicativo celular e o servidor.

Desenvolvendo o servlet – a aplicação servidora

Servlet é um programa Java que estende a funcionalidade de um servidor web gerando conteúdo dinâmico e interagindo com os clientes. O servidor web hoje mais utilizado para executar servlet é o Apache Tomcat.

Antes de desenvolver o servlet, será necessário instalar o Apache Tomcat na máquina servidora. O download do Tomcat pode ser feito no site http://jakarta.apache.org/tomcat/. A versão escolhida foi a 5.0.28.

Após o download do arquivo jakarta-tomcat-5.0.28.exe, será necessário instalar o servidor. O processo de instalação não requer configuração especial, basta avançar todas as telas (ver Nota 2). A instalação padrão configura o Tomcat na porta 8080, com o usuário admin e a senha em branco.

 

Nota 2. Instalação do Tomcat

O foco deste artigo não é a instalação do Tomcat. Assim, abordamos apenas o básico para demonstrar a construção da aplicação exemplo.

 

Após a instalação, é necessário iniciar o serviço. Clique com o botão direito no ícone do Tomcat localizado ao lado do relógio e escolha a opção Start Service (ver Figura 2).

 

image005.png                    

 

Figura 2. Ícone do Tomcat localizado na barra de tarefas do Windows.

 

Para certificar-se de que o serviço foi iniciado, abra o browser e digite a seguinte URL: http://127.0.0.1:8080. Feito isto, deverá ser exibida a tela da Figura 3.

 

 

image007.png

(clique aqui para ampliar a imagem)

Figura 3. Página de configuração do Apache Tomcat 5.0.28

 

Agora iniciaremos o desenvolvimento do servlet. Para isso, acesse a pasta onde foi instalado o tomcat, dentro da pasta webapp crie uma pasta com o nome de duke (duke será o contexto da aplicação no servidor) e, dentro dela, crie uma estrutura conforme a Figura 4.

 

 image009.png

Figura 4. Estrutura de diretório para o contexto duke onde será desenvolvido o servlet

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?