Um dos objectivos do projecto em questão é a disponibilização de serviços de recepção e envio de mensagens de texto - SMS. Para tal, recorreu-se a um Gateway WAP e SMS denominado Kannel, que permite a troca de conteúdos entre um Content Provider e um terminal móvel, como ilustrado a seguir.
Figura 1 - Disposição lógica dos componentes (terminal móvel, SMSCenter, Gateway SMS/WAP e Content Provider).
Um dispositivo móvel comunica por SMS com o SMSC do Kannel, realizando um pedido. O Kannel realiza um HTTP GET ao Content Provider para obter os conteúdos pretendidos e envia-os sob a forma de mensagem (SMS) de forma automática ao remetente da mensagem de pedido inicial.
A comunicação é realizada por GSM, com recurso a um pen modem ZTE K3571-Z da Vodafone.
A utilização deste modem resultou numa série de problemas de configuração e reconhecimento do mesmo por parte dos sistema operativo (SO) utilizado (Ubuntu 10.10 Virtual Machine), que foram resolvidos com a utilização de outro SO - Ubuntu 11.10 Virtual Machine, que resolveu os bugs de reconhecimento encontrados anteriormente.
Ultrapassada a questão de configuração do modem GSM, a configuração do Kannel é rápida, bastando recorrer ao excelente guia de apoio disponível em http://www.kannel.org/.
Seguiu-se a elaboração de Web services (WS) para testar o envio e recepção de mensagens. Estes foram construídos como RESTful Web services, dado que as interacções entre os diversos agentes considerados assentam em HTTP GET e PUT/ POST.
Figura 2 - Envio e recepção de mensagem de teste (de/para o mesmo número) através de Web service e Kannel.
Testando o Web service de envio e estando a resposta automática do Kannel activa, pode verificar-se a comunicação por SMS.
Efectuados os primeiros testes e obtidos os resultados pretendidos, passou-se ao refactoring dos WS construídos, de modo a moldá-los ao propósito a que se destinam no projecto em questão. Para tal, foram definidos os parâmetros que devem constar nos mesmos, e seus tipos de dados. A informação trocada entre os WS e os restantes agentes/ serviços é encapsulada em XML. Segue um exemplo de pedidos enviados por um terminal móvel para o serviço de recepção de SMS elaborado e seu processamento:
Figura 3 - Pedidos (dois) e respectiva informação.
Figura 4 - XML gerado com base nas (duas) SMS enviadas.
(To Be Continued...)


