Para manter as características do LES, o simulador também deve suportar o acesso de aplicações externas, que atuam como requerentes das posições dos dispositivos móveis. No intuito de realizar essa comunicação com as aplicações remotas, uma interface foi idealizada para o simulador e desenvolvida para possibilitar esse acesso através da Internet: a interface externa HTTP/HTTPS (Figura 5-5). Essa interface, também chamada de interface WEB, proporciona ao simulador o recebimento de requisições e o envio de respostas às solicitações através do padrão XML, da mesma maneira que o LES. O LES tem a capacidade de se comunicar com as aplicações externas via dois protocolos: HTTP e HTTPS [34]. Eles fazem parte da larga coleção de protocolos de comunicação do protocolo TCP/IP. O TCP (Transmission Control Protocol) [52] é um protocolo utilizado para a transmissão de dados entre uma aplicação e uma rede. Ele é responsável por subdividir o dado a ser transmitido em pacotes IP (Internet Protocol), antes de seu envio, e pelo reagrupamento após sua chegada. É o protocolo IP que cuida da comunicação entre computadores em uma rede, sendo responsável por enviar e receber pacotes de dados via Internet.
O HTTP (Hyper Text Transfer Protocol) foi originalmente idealizado como um protocolo que cuida da comunicação entre um servidor da rede e um navegador do usuário. Seu mecanismo de operação tem como característica o envio de requisições, a partir de um cliente, para um servidor. Esse servidor, ao receber essa solicitação, retorna ao cliente a informação desejada. Geralmente essa informação é uma página web. No simulador, a informação que trafega é um documento XML (eXtensible Markup Language – Linguagem de Marcação Extensível) [34]. Semelhantemente ao HTML (Hyper Text Markup Language) [34], o XML é uma linguagem de marcação, isto é, utiliza marcadores (tags) para informar ao navegador como o texto deve ser apresentado. Uma primeira diferença que surge entre o HTML e o XML é que o primeiro possui um conjunto pré-definido de marcadores. Já o segundo, possibilita que os marcadores sejam personalizados, de acordo com as necessidades e a facilidade de interpretação do código. Uma linguagem não sobrepõe a outra, pois
foram desenvolvidas para tarefas distintas: enquanto o XML foi projetado para descrever o dado e focar na natureza do dado; o HTML foi projetado para mostrar o dado e focar no que o dado parece. Assim, optou-se por utilizar XML em toda comunicação com a plataforma real por ser um padrão especificado para tornar simples a troca de documentos estruturados através da Internet.
Por sua vez, o HTTPS (Secure HTTP) é um protocolo que cuida da comunicação entre o cliente e o servidor em um modo seguro. Ele proporciona uma comunicação de dados mais segura, com o emprego de ferramentas como a criptografia, para o envio de informações sigilosas.
O Simulador desenvolvido trabalha com esses mesmos protocolos. Uma especificação técnica do sistema abrange a relação entre o protocolo empregado e a porta de comunicação utilizada para a troca de informações entre o cliente e o servidor. Caso a requisição seja através de tráfego HTTP, a aplicação externa deverá se conectar ao simulador através da porta TCP 717; caso seja através do tráfego HTTPS, deve utilizar a porta TCP 716. A qualquer momento, o simulador pode receber uma requisição XML, em qualquer porta, para identificar um ou mais dispositivos configurados (ou dispositivos simulados), apresentando sua posição geográfica simulada em função do par latitude/longitude.
Na Figura 5-13 pode ser vista a seqüência prevista de requisições e respostas entre o simulador e as aplicações remotas, que desejam solicitar alguma informação acerca da localização de um determinado dispositivo. Todas essas conexões externas são realizadas através da interface WEB do simulador. Nesse procedimento, a aplicação remota inicialmente solicita o estabelecimento de uma conexão com o simulador (1). Após receber a resposta que a conexão foi aceita (2), essa aplicação remota está apta a enviar a requisição XML de localização de dispositivo (3). Ao receber essa requisição, o simulador interpreta a solicitação; busca as informações necessárias na base de dados; efetua os cálculos necessários; e, retorna a resposta para o solicitante. (4).
Figura 5-13: Seqüência de comunicação entre um aplicação remota e o simulador
Na Figura 5-5, também pode ser observado que o mecanismo de troca de mensagens XML é inicializado com o recebimento das requisições no servidor de conexão e finalizado com a entrega da resposta, também em XML, no mesmo servidor de conexão, respectivamente as etapas (3) e (4) da Figura 5-13. A direção das setas, na Figura 5-5, percorre a seqüência de sub módulos que uma requisição de localização pode passar, desde sua interpretação até a montagem da resposta XML e seu posterior envio ao requerente. A interface web é composta por cinco sub-módulos que executam funções que se complementam. São eles:
• servidor de conexão: módulo responsável por servir de interface entre o simulador e as
aplicações externas. É responsável pela fiscalização das portas de comunicação e pelo tratamento das requisições HTTP/HTTPS que chegam das (ou saem do simulador para as) aplicações remotas;
• interpretador XML: módulo responsável por ler e interpretar a solicitação recebida pelo
servidor de conexão. É esse elemento que identifica qual a natureza da localização e qual o dispositivo (ou conjunto de dispositivos) que devem ser localizados;
• interface da Base de Dados: como o próprio nome sugere, esse módulo é o responsável por
servir de comunicação com a base de dados, para a busca das informações referentes aos dispositivo a ser localizado;
• interface de cálculo: a partir das informações obtidas na base de dados, alguns parâmetros
devem ser calculados para informar a localização do dispositivo de interesse. Além disso, a (1) Requisição de Conexão (2) Conexão Aceita (3) Requisição XML (4) Resposta XML Aplicação Remota Internet Simulador
cada ciclo de interação, a atualização da localização dos dispositivos que estão utilizando o modelo de random walk é calculada nessa interface; e
• resposta XML: esse módulo é o responsável por montar o documento XML que servirá como
resposta para as aplicações remotas, apresentando a localização do dispositivo de interesse, em função de seu par de coordenadas latitude / longitude.
Esse módulo recebeu a tarja de “núcleo” do simulador por concentrar as tarefas automatizadas que a ferramenta possui. Os detalhes de implementação de cada sub-módulo, bem como as variáveis manipuladas e os resultados obtidos, encontram-se apresentados no próximo capítulo.