Artigo WebMobile 16 - Utilizando web services em aplicações móveis

Neste artigo veremos o que a especificação JSR 172 traz de novo ao uso de Web Services em aplicações Java ME.

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

Clique aqui para ler a revista em PDF

Java ME

Utilizando web services em aplicações móveis

O que a especificação JSR 172 traz de novo ao uso de Web Services em aplicações Java ME

 

   Neste artigo, daremos uma breve introdução aos Web Services, tão falados na indústria de tecnologia de software hoje em dia, de sua aplicação na integração de serviços localizados remotamente, e principalmente sua relação com os dispositivos móveis, nosso foco neste artigo.

   Após uma pequena introdução teórica e algumas informações conceituais, desenvolveremos uma aplicação chamada Clima Global, que fará uso da API de Web Services, presente nos dispositivos Nokia, para demonstrar como é fácil e rápido utilizar serviços desenvolvidos por terceiros para criar aplicações móveis realmente úteis para o dia-a-dia. Mãos à obra!

Introdução aos Web Services

Web Services surgiram com a idéia de resolver os problemas de incompatibilidade entre os protocolos, uso de portas e formatos binários rejeitados por firewalls, dentre outros problemas apresentados em software projetados com a arquitetura em camada. Web services são um sistema de software desenhado para permitir a comunicação machine-to-machine em uma rede de computadores. Eles permitem a descrição de um serviço em uma determinada máquina, feita em uma linguagem baseada em XML (usualmente WSDL – Web Services Description Language). Tal descrição é feita seguindo-se as regras do padrão SOAP (Simple Object Access Protocol) para que, seguido o mesmo padrão, ferramentas do lado do cliente consigam automaticamente gerar código em linguagens como Java e as do framework .NET, para que do ponto de vista do desenvolvedor, ele esteja apenas acessando código em sua linguagem favorita, sem se importar com os detalhes como tráfego de rede, parsing do XML para consumo do serviço, etc. A Figura 1 nos mostra um exemplo simplificado da arquitetura de um web service.

 

Figura 1. Arquitetura básica de um Web Service

Em suma, os principais benefícios dos Web Services são:

·Protocolos baseados em um padrão como XML, permitindo a geração automática tanto do código cliente quanto do código servidor. Exemplo: um Enterprise JavaBean pode ser exposto como um web service de forma praticamente automática, e o código cliente em Java para consumi-lo pode ser gerado da mesma forma.

·Utilização de protocolos baseados em texto, o que permite tráfego suave através de firewalls que fazem verificações de pacote.

·Utilização de porta 80 do protocolo HTTP, o que permite transportar as chamadas ao serviço sem que o firewall bloqueie estas portas.

·Distribuição de código de forma modularizada e que permite fácil manutenção e correção de erros, sem os problemas verificados com as versões binárias de arquiteturas distribuídas.

·Com a modularização atingida no item interior, torna-se possível que dispositivos de diferentes arquiteturas, como: computadores, handhelds, telefones celulares, set-top boxes, entre outros, consigam interagir e reutilizar serviços e porções de código possibilitando um uso mais inteligente e eficiente dos recursos computacionais.

JSR 172 - Web Services no mundo Java Micro Edition

Para que uma plataforma seja habilitada a consumir Web Services, é necessário que possua suporte ao parsing de XML (afinal todas as trocas de mensagens são feitas neste padrão) e uma implementação do protocolo SOAP, para decodificar e “entender” a descrição do serviço, as operações disponibilizadas e os tipos de dados que elas retornam.

Para o mundo Java MicroEdition, essas pré-condições costumavam ser satisfeitas através do uso de pacotes de terceiros, tanto para o parsing de XML quanto para a decodificação dos envelopes SOAP. A Figura 2 mostra alguns dos pacotes mais utilizados.

 

Figura 2. Pacotes de terceiros para parsing de XML e SOAP

Pelo lado positivo, pacotes de terceiros trouxeram o poder de interpretar XML e SOAP a dispositivos que não tinham APIs para este fim. No caso dos dispositivos da Nokia, falamos de toda a geração Série 40 1ª e 2ª edições, e da S60 1ª e 2ª edições até Feature Pack 2. Isso significa que milhões de dispositivos já vendidos no mercado dependiam de os desenvolvedores integrarem frameworks XML junto com suas aplicações para terem a funcionalidade desejada. Enquanto esses frameworks funcionam bem e já foram suficientemente testados em aplicações comerciais, eles sofrem de três problemas básicos:

" [...] continue lendo...

Artigos relacionados