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