• Nenhum resultado encontrado

6. A implementação do Simulador e comparação com a plataforma real

6.1. Comunicação entre o Simulador e as Aplicações Remotas

6.1.2. Respostas às Requisições

Após determinar a localização dos dispositivos de interesse, o próximo passo é montar uma resposta XML e encaminhar ao cliente solicitante. A procura na base de dados é realizada pela

interface da base de dados, localizada na interface externa HTTP/HTTPS (Figura 6-1). O simulador está configurado para apresentar respostas para os casos de dispositivo encontrado ou não no sistema. Caso não obtenha nenhum retorno na varredura da base de dados (número de identificação do dispositivo móvel não encontrado), isso significa que o sistema está simulando um aparelho móvel desligado ou fora da área de cobertura da operadora. Assim, o simulador deverá enviar uma mensagem de alerta, no formato XML de resposta, de localização de dispositivo, indicando a falha de localização (Position Method Failure). Caso contrário, as demais informações do dispositivo desejado, armazenadas na base de dados do simulador, são selecionadas. A interface da base de dados é capaz de analisar o registro e localizar a informação específica desejada. Caso seja verificado que o dispositivo encontra-se em uma rota pré-estabelecida, existirá a necessidade de manipulação matemática para determinar a sua atual localização. Essa rota pré-estabelecida foi determinada durante a criação individual do dispositivo na base de dados. O algoritmo de deslocamento desse móvel, como foi definido e apresentado anteriormente (seção 5.3.1), obedece à equação de um movimento uniforme:

) 1 . 6 ( 0 vt Fórmula s s= +

Toda manipulação matemática envolvida nas operações de determinação da localização do dispositivo móvel é realizada pela interface de cálculo, também localizada na interface externa HTTP/HTTPS. Tomando os dados da rota obtidos pela interface da base de dados, a interface de dados é capaz de determinar a localização do dispositivo naquele determinado instante. De posse dessa informação específica, o simulador monta a resposta XML e solicita ao servidor de comunicação que a envie para o requerente. É tarefa do módulo de Resposta XML compor essa mensagem. Ela deve obedecer à documentação [50] para ser corretamente interpretada pelo cliente.

A seguir, é apresentado um exemplo de uma resposta à localização de alguns dispositivos. A requisição original solicitou localizar os dispositivos 447731334412 e 447731334413, mas apenas o primeiro é encontrado pelo sistema. A tentativa de localizar o segundo, por algum motivo, não obteve sucesso, sendo informado ao requerente a falha na localização.

<?xml version = "1.0" ?>

<!DOCTYPE SLIA SYSTEM "MLEP_SLIA.DTD"> <SLIA ver="1.0">

<POS>

<MSID msid_type="MSISDN">447731334411</MSID> <PD>

<TIME> <LOCAL_TIME>20010604125716</LOCAL_TIME> </TIME> <SHAPE> <CIRCLE> <POINT> <LL_POINT> <LAT>512614</LAT> <LONG>10400</LONG> </LL_POINT> </POINT> <RAD>550</RAD> </CIRCLE> </SHAPE> </PD> </POS> <POS> <MSID msid_type="MSISDN">447731334412</MSID> <PD> <TIME> <LOCAL_TIME>20010604121534</LOCAL_TIME> </TIME> <SHAPE> <ELLIPSE> <POINT> <LL_POINT> <LAT>522025</LAT> <LONG>3913</LONG> </LL_POINT> </POINT> <ANGLE>65</ANGLE> <SEMI_MAJOR>750</SEMI_MAJOR> <SEMI_MINOR>225</SEMI_MINOR> </ELLIPSE> </SHAPE> </PD> </POS> <POS> <MSID msid_type="MSISDN">447731334413</MSID> <POSERR>

<RESULT resid="6">POSITION METHOD FAILURE</RESULT> <TIME> <LOCAL_TIME>20010604130005</LOCAL_TIME> </TIME> </POSERR> </POS> <GMT_OFF>+0000</GMT_OFF> <RESULT resid="0">OK</RESULT> </SLIA>

Se uma requisição for apresentada com alguma irregularidade, o simulador envia uma resposta de erro padrão, informando à aplicação externa que a mensagem deve ser corrigida. O tratamento de erro existe no LES para as situações de: requisições diferentes das permitidas; e requisições contendo elementos não suportados, desconhecidos ou incorretos. No simulador, esse tratamento foi acentuado e, além de verificar a integridade dos elementos da requisição, filtra o tipo de requisições aceitas, de modo a atender apenas as requisições do tipo SLIR (Standard Location Immediate Request). De acordo com a documentação da API 2, além do erro de falha de localização, existem vários tipos de

erro que são tratados pelo LES, como erros de comunicação com a rede da operadora e erros internos. Para o simulador, foi definido que os erros que ele deve reportar aos solicitantes são aqueles listados na :

Tabela 6-1: Tratamento de erro do simulador

Fonte de Erro Código do Erro Resposta encaminhada

Elemento não localizado 6 POSITION METHOD FAILURE

Elementos adicionais na requisição 105 107

FORMAT ERROR

PROTOCOL ELEMENT NOT

SUPPORTED

Requisição não suportada 108 SERVICE NOT SUPPORTED

Requisição desconhecida ou incorreta

400 BAD REQUEST

O código 6 representa o erro de falha de localização. Os erros que identificam elementos adicionais na requisição (código 105 ou 107) ocorrem quando o parser do interpretador XML não consegue entender a sintaxe da mensagem por causa desse elemento adicional. Um parser é um programa de computador (ou apenas um componente de um programa) que serve para analisar a estrutura gramatical de um código. Quando não se tratar de uma requisição do tipo SLIR, o erro 108 é apresentado. Já quando uma requisição é desconhecida ou incorreta, isto é, uma requisição é encaminhada solicitando um serviço não existente na API, o erro 400 é reportado ao cliente. Um exemplo de mensagem de erro é apresentado no código a seguir. Trata-se de um erro 105 (Format

Error):

<?xml version = "1.0" ?>

<!DOCTYPE SLIA SYSTEM "MLEP_SLIA.DTD"> <SLIA ver="1.0">

<RESULT resid="105">FORMAT ERROR</RESULT> <ADD_INFO>MSID.msid_type invalid</ADD_INFO> </SLIA>