sábado, 12 de janeiro de 2008

Arquitetura Mobile Host

A arquitetura Mobile Host [1][2] apresenta uma abordagem para o fornecimento Web Services móveis. Em seus estudos, os desafios chave encontrados foram:
  • Manter os Web Services compatíveis de tal forma que os clientes não notassem a diferença.
  • Projetar o hospedeiro móvel com uma pequena parcela dos recursos disponíveis em um dispositivo móvel (em seu protótipo, 130 KB).
  • Limitar a sobrecarga de performance das funcionalidades para que nem os serviços, nem as funções normais do smart phone fossem impedidas de funcionar.




Considerando esses desafios, juntamente com os requisitos arquiteturais e de casos de uso, a arquitetura Mobile Host fornece as seguintes características:
  • Suportar requisições HTTP padrão de servidor Web.
  • Fornecimento de Web Service para requisições de clientes usando SOAP sobre HTTP.
  • Capacidade de manipular requisições concorrentes.
  • Suporte à implantação de serviços em tempo de execução.
  • Suporte à análise de desempenho.
Mobile Host foi desenvolvido como um manipulador de Web Service construído sobre o topo de um servidor Web normal. As requisições para o Web Service enviadas por tunelamento HTTP são desviadas e manuseadas por um Web Service manipulador.

A figura abaixo apresenta o núcleo da arquitetura Mobile Host. Na interface HTTP, Mobile Host fica esperando por requisições HTTP GET/POST em soquete do servidor. Quando Mobile Host recebe uma requisição, o soquete do servidor a aceita, cria um soquete para a comunicação e inicia uma nova thread de execução criando uma instância do manipulador de requisições (request handler). Este extrai a mensagem de entrada do canal de entrada do soquete e checa por requisições para o Web Service. Em caso afirmativo, o manipulador de requisições as processa e envia as respostas escrevendo no canal de saída do soquete.



Se a mensagem comprime uma requisição Web Service, o componente manipulador de Web Service (Web Service Handler) processa a mensagem, lendo o corpo da mensagem HTTP e deserializando a requisição SOAP de objetos Java através do processador SOAP. Esses objetos são passados para o manipulador de serviço (service handler), que extrai os detalhes do serviço e invoca o respectivo serviço. Os Web Services implantados no Mobile Host podem acessar o sistema de arquivos local ou qualquer dispositivo externo, como um receptor GPS, usar infravermelho, bluetooth, etc., e podem implementar lógica de negócio. O manipulador de requisições serializa a resposta e prepara uma mensagem de resposta http, que retorna ao cliente como uma resposta HTTP pelo canal de saída do soquete.

Maiores detalhes podem ser obtidos diretamente nas referências abaixo.

[1] S. N. Srirama, M. Jarke, e W. Prinz, ”Mobile Web Service Provisioning,” Proc. Advanced Int. Conf. on Telecommunications and Int. Conf. on Internet and Web Applications and Services, 2006.
[2] S. Srirama, M. Jarke e W. Prinz, “Mobile Host: A feasibility analysis of mobile Web Service provisioning”, Proceedings of the CAISE*06 Workshop on Ubiquitous Mobile Information and Collaboration Systems UMICS '06, 2006.

Nenhum comentário: