Artigo WebMobile 24 - Desenvolvendo uma Aplicação Java ME de tradução e envio de mensagem SMS

O artigo servirá para ensinar e orientar os desenvolvedores a programar sistemas em JavaME que utilizem diversos serviços web disponíveis na internet.

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

Java Mobile

Desenvolvendo uma Aplicação JavaME de Tradução e envio de Mensagem SMS

Parte 1: Desenvolvendo o Editor e Tradutor de Mensagens utilizando Serviços HTTP

 

LEAD: BOX

De que se trata o artigo:

Esta é uma série que trata da utilização de serviços disponíveis na web (HTTP) em aplicações JavaME. Será explicado o passo a passo da montagem de um sistema tradutor e lançador de mensagens de texto (SMS) traduzidas. Neste primeiro artigo veremos a utilização de serviços via HTTP com o propósito de traduzir mensagens de texto a partir de um celular.

Para que serve:

O artigo servirá para ensinar e orientar os desenvolvedores a programar sistemas em JavaME que utilizem diversos serviços web disponíveis na internet. O sistema é simples, porém bastante útil. Utilizando um serviço de tradução disponível na internet, o sistema irá traduzir as mensagens de uma língua para outra (ex: português para italiano, etc).

Em que situação o tema é útil:

O tema é útil para analistas que desejam que suas aplicações JavaME desfrutem de serviços disponíveis na internet. O sistema é útil para comunicação via SMS com textos escritos em diferentes línguas.

 

Nos dias de hoje, a comunicação possui um forte papel nas execuções de tarefas, sejam elas a nível corporativo ou de entretenimento. A tecnologia atual permite que a comunicação fique num patamar extremamente elevado. Com a internet, o conceito de globalização se tornou bem mais visível a todos, possibilitando que a troca de informações entre instituições ocorra de forma ágil e eficiente. Além disso, a diversidade de dispositivos (muitos deles portáteis) que acessam a internet é extremamente grande.

Olhando o cenário atual, percebemos que para nós, brasileiros, uma grande dificuldade em nos comunicar com o restante do mundo ainda é o idioma. Nosso idioma, o português, é pouco falado ao redor do mundo. Além disso, temos ainda uma certa dificuldade em aprender outros idiomas mais falados, como o Inglês. No cenário globalizado, essa situação não pode ser mais tolerada. No dia a dia, estamos cercados por informações nas mais diferentes línguas, seja para entretenimento (ex: vários jogos estão disponíveis apenas no idioma Inglês ou outras línguas diferentes da nossa), pesquisa (ex: livros técnicos ou artigos são normalmente escritos em outras línguas) ou negócio (a língua universal ainda é o inglês, mas conhecer outras línguas nos traz uma vantagem no mercado).

  Sendo assim, neste artigo iremos abordar uma solução alternativa e prática para o problema de comunicação em diferentes idiomas: desenvolveremos um sistema que funcionará em um aparelho celular que é capaz de traduzir mensagens de texto, para que estas mensagens possam ser usadas posteriormente para o envio de mensagens SMS (Short Message Service) para outro aparelho celular. Para isso, vamos utilizar as seguintes tecnologias JavaME: Conexão Genérica (GCF) e a API de mensagens (Wireless Messaging API – WMA) para criação e manipulação de SMS. Essas tecnologias estão disponíveis na grande maioria dos celulares do mercado. Mais adiante detalharemos mais a respeito delas.

Um ponto importante é a reusabilidade: ao invés de desenvolvermos todo um algoritmo de tradução de línguas, podemos utilizar um serviço especializado em traduções já existente na internet: Ferramentas de Idiomas do Google.

  Esta série será dividida em duas partes. Neste primeiro artigo, será abordada a interface (comunicação) da aplicação proposta com o Google Tradutor para tradução de mensagens de texto. O objetivo é simplesmente traduzir um texto de um idioma para outro. No segundo, serão detalhados os conceitos relacionados a SMS, além da construção da funcionalidade responsável pelo da mensagem traduzida via SMS para outros dispositivos.

A Aplicação Proposta

A aplicação que iremos desenvolver trata-se de um sistema que permite que os usuários escrevam textos numa determinada língua (português, espanhol, inglês, etc) e em seguida optem por traduzir este texto para outra língua (português, espanhol, inglês, etc). Neste momento, o sistema irá acessar o sistema de tradução do Google (http://translate.google.com.br/translate_t#) que irá retornar o texto traduzido para o aplicativo, que o exibirá ainda em forma editável (isso é interessante, pois o usuário pode querer ajustar algumas palavras ou nomes que o Google tenha se equivocado). Por fim, o usuário pode optar por enviar o texto traduzido para outro dispositivo celular.

Conforme mencionado, tanto na tradução quanto no envio do SMS, será utilizada a API de Conexão Genérica do JavaME (GCF). Para o acesso ao serviço de tradução, utilizaremos a interface HttpConnection. Para o envio do SMS, utilizaremos a interface MessageConnection. A criação e manipulação dos SMS’s serão realizadas pela API de mensagem WMA (JSR-120). A Figura 1 demonstra o fluxo e uso das APIs no sistema.

 

Figura 1. Fluxo de uso das APIs no sistema

Seleção de Tecnologias

Antes da construção da aplicação proposta, precisamos verificar se é possível e viável a criação de um sistema deste tipo para aparelhos celulares. Além disso, deve ser analisada qual a melhor maneira de se implementar esta solução. São dois pontos a serem analisados: a tradução e o envio da mensagem.

Em relação ao primeiro ponto, a tradução, existe a possibilidade de o próprio sistema traduzir internamente o texto a ser enviado, mas isto pode ser inviável devido a limitações de armazenamento e processamento dos celulares. Este é outro grande motivo para reutilizar um serviço que já existe, ou seja, a Ferramenta de Idiomas do Google. Para isto, os dispositivos (celulares) devem possuir a API de conexão a HTTP (HttpConnection). Caso o dispositivo não possua esta conexão, o dispositivo não deve permitir a instalação da aplicação (uma mensagem deve ser exibida para o usuário informando do problema).

Para o segundo ponto, criação e envio de SMS, diversos modelos de celulares (talvez a maioria) possuem a API de criação/manipulação de SMS (WMA) e a API de conexão de mensagens (MessageConnection). Estas APIS’s são requeridas para o funcionamento do sistema. Caso o dispositivo (celular) não possua esta API, o sistema pode ser instalado somente para o uso do tradutor. Envios de mensagens não serão possíveis neste caso. No momento da instalação, dispositivo deve notificar o usuário sobre a ausência desta API, informando que a aplicação não funcionará corretamente, visto que somente parte da aplicação funcionará (tradução).

Vale ressaltar que a grande maioria dos celulares possui implementação das APIs necessárias para o funcionamento deste sistema. Isto torna a aplicação bem aplicável ao mercado atual.

Muitos leitores já devem estar se questionando “como fazer para não permitir a instalação do aplicativo caso o celular não tenha tais APIs”? Veremos mais adiante como configurar o aplicativo para certas validações antes da instalação.

  A partir de agora, iremos abordar toda a parte de tradução, ou seja, a comunicação da aplicação com o serviço HTTP do Google. Como dito anteriormente, a parte de envio de SMS será abordade na segunda parte do artigo.

Ferramentas de Tradução do Google

Trata-se de um conjunto de aplicativos mantido pelo Google que auxiliam usuários a traduzir textos e sites para diferentes línguas. Estes aplicativos ficam disponibilizados na Web no endereço http://www.google.com.br/language_tools?hl=pt-BR. As principais aplicações são o tradutor de Web Sites e o Tradutor de Textos.

O Google atua fortemente em melhorias desses serviços. Isto o torna um serviço de grande confiabilidade. Mesmo assim, como todo tradutor automático, é sempre necessário dar uma validada no texto traduzido, visto que o Google pode se equivocar em certas palavras ou trechos. Por esse motivo a aplicação não enviará diretamente o texto traduzido. Antes, o usuário ainda poderá editá-lo com objetivo de ajustar qualquer erro de tradução.

API de Conexão Genérica (GCF) e a HttpConnection

O leitor já deve ter percebido que o serviço de tradução que referimos (ferramentas de idiomas do Google) é um sistema voltado para usuários “humanos”, ou seja, existe toda uma interface “Homem – Máquina” implementada. A pagina é voltada para pessoas. Mas isso não impede de criarmos sistemas que utilizam esse serviço. Basta utilizarmos o protocolo HTTP.

  Alguns sites, a fim de evitar acesso por máquinas e por conseqüência a sobrecarga dos servidores, forçam que o usuário informe um conjunto de letras em uma imagem qual um computador não consegue ler. Isto restringe o acesso a tais sistemas por meio automático e somente pessoas conseguem acessá-los. No caso das ferramentas de idiomas do Google ainda não existe esta restrição. Caso passe a existir, o sistema teria que ser modificado para que o usuário informe o texto disponibilizado na imagem a cada chamada do serviço.

Os acessos de aplicações para serviços de http necessitam que essas aplicações conheçam o protocolo HTTP. Não é foco deste artigo explicar este protocolo a fundo. Mas é necessário que o leitor saiba algumas informações para um melhor entendimento. Este protocolo baseia-se em pedidos e respostas entre aplicações cliente/servidor. O exemplo mais comum é a interação entre um navegador web (cliente) e um servidor.

O pedido resume-se a três seções: método (não confundir com método de uma classe Java), cabeçalho e corpo.

Existem três métodos de pedido:

" [...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados