Especificação de protocolo de comunicação

Para melhor compreensão da atividade, é interessante uma breve apresentação do projeto. O módulo em que estive envolvido era apenas uma parte de uma solução, ainda em fase inicial de desenvolvimento, para o monitoramento de caminhões de carga e gerenciamento de informações. Basicamente, a solução é composta pelos seguintes elementos:

- Transponders, instalados em caminhões

- Estações de comunicação com transponders, instaladas em locais onde há o intuito de detectar a passagem de caminhões - estradas, pontos de parada, etc. Cada estação é composta por: uma antena para comunicação com transponders, uma terminal de processamento e um modem GSM / GPRS

- Sistema de gerenciamento das informações e eventos repassadas pelas estações, o GTransp

- Infolog, sistema (já existente) que fornece informações logísticas via internet, em tempo real, sobre o processo de transporte da carga desde o carregamento, na origem, até o descarregamento, no destino.

A figura abaixo ilustra a arquitetura da solução



Estações de comunicação detectam a passagem de um transponder e a repassam o evento ao GTransp. Várias informações podem ser obtidas com a passagem de um transponder dentro do raio de alcance de uma base, dada a diversidade de eventos definidos na solução. Monitoramento de veículos é apenas uma das possíveis aplicações. O transponder também pode receber mensagens e enviar eventos disparados pelo motorista, como em alertas a assaltos.

Com relação ao meio de comunicação, transponders e estações comunicam-se via radiofreqüência. Já as estações e o GTransp usam a Internet como meio para tráfego de dados, mais especificamente com o gateway da operadora de celular como elemento intermediário: o gateway une as redes GSM e a Internet, permitindo que um dispositivo móvel comunique-se com um computador ligado à Internet.

Minhas atividades nesse projeto estiveram relacionadas especificamente com essa comunicação entre as estações e o GTransp. Especifiquei um mecanismo de transporte confiável de dados sobre o protocolo da camada de transporte escolhido, o UDP. Para não causar dúvidas, a palavra confiabilidade é empregada para expressar a idéia de garantia de entrega de dados e não está associada ao uso de criptografia.

Quando falamos sobre protocolo de comunicação em redes [de comutação de pacotes] , existem duas opções para a camada de transporte: TCP e UDP. TCP é um protocolo bem complexo, característico pelo uso de mecanismos de garantia de entrega de dados e controle de fluxo de dados e de congestionamento. Para implementar tais mecanismos, o protocolo define um cabeçalho para cada pacote com várias informações, adicionando um significativo número de bytes aos dados da aplicação. Já UDP é um protocolo de transporte mais simples, por não garantir nenhuma das propriedades de TCP citadas anteriormente, possibilitando maior velocidade para a entrega de pacotes de dados. Em UDP não há sequer os conceitos de confirmação de recebimento de dados e estabelecimento de conexão: elementos comunicantes simplesmente enviam dados.

A principal razão pela escolha de UDP como protocolo de transporte foi o custo que, de acordo com a política empregada pela operadoras de celular, é proporcional à quantidade de bytes transportados. Utilizar o transporte confiável de dados sobre UDP não seria tão oneroso quanto utilizar TCP, pois nem todos os serviços de TCP seriam implementados. De fato, o projeto também apresenta outras questões semelhantes ao de aplicações móveis, como a alocação temporária de endereço IP (endereço atribuído a um elemento da rede - um computador, um roteador ou um dispositivo móvel - que o identifica unicamente). [Tais semelhanças motivaram meu chefe a designar tal tarefa para mim pois o protocolo também poderia ser útil em futuras aplicações para celular.]

A atividade envolveu a composição de um documento com a definição do mecanismo de transporte confiável de dados e os tipos de pacotes transportados (tipos de eventos gerados pelo transponder e comandos enviados pelo GTransp). Como a especificação dos tipos de pacotes de dados da aplicação estava altamente vinculada com os eventos gerados pelas estações bem como com os comandos que o GTransp pode enviar, participei de reuniões com os mentores do projeto - alguns diretores do grupo Omnidata, incluindo meu chefe - para obter as informações necessárias. Para a definição do protocolo de transporte, atuei praticamente sozinho, apresentando os resultados obtidos para meu chefe. Reuniões posteriores foram feitas para validar minha documentação.

A garantia de entrega de dados foi definida com a adição de informações aos dados da aplicação e uso de mecanismos de retransmissão de pacotes e de confirmação de recebimento de pacotes. Ter cursado a uma disciplina a respeito de redes foi de grande ajuda, pois estudei e aprendi conceitos utilizados nesse projeto. Consultas a [ref. livro] também foram [bastante - bem] úteis. A atividade não foi muito complexa e concluí-la dentro do prazo determinado. Entretanto, confesso que me sentiria um pouco desnorteado no início se não tivesse cursado uma disciplina sobre o assunto.

A etapa seguinte seria o desenvolvimento do GTransp. Participei de algumas para a definição do modelo de classes de banco de dados. Entretanto, a etapa foi cancelada temporariamente e só será retomada após a conclusão de questões técnicas relacionadas aos transponders e as estações.