wiki:programmersguide/tcp

Version 18 (modified by jano.simas, 10 years ago) (diff)

--

Comunicação TCP

A comunicação da aplicação web e as instâncias dos serviços deve ser feita através do protocolo TCP.

As mensagens devem ser compostas por 3 partes:

  • Tamanho da mensagem + tamanho do sinal (inteiro de 4 bytes)
  • Sinal (inteiro de 4 bytes)
  • Mensagem [opcional]

Sinais disponíveis

0 TERMINATE_SERVICE_SIGNAL Desliga o serviço
1 STATUS_SIGNAL Requisição de informações sobre o serviço
2 ADD_DATA_SIGNAL Envio de dados
3 START_PROCESS_SIGNAL Inicializa um processo (Coleta, análise,...)
4 LOG_SIGNAL Sinal utilizado para que o serviço envie mensagens de erro para a aplicação Web
5 REMOVE_DATA_SIGNAL Sinal utilizado remoção de dados
6 PROCESS_FINISHED_SIGNAL Sinal utilizado notificar que um processo foi finalizado
7 UPDATE_SERVICE_SIGNAL Sinal utilizado para atualizar as informações de um serviço, é obrigatório o envio desse sinal quando um serviço é iniciado.

Mensagem

O envio de dados deve ser feito através de um objeto JSon composto por arrays de cada tipo de dado.

O JSon deve ser formatado de forma compacta, isso é, não deve ter quebras de linhas, todo ":" separador deve ser seguido por um espaço.

As tags de tipos de dados aceitos :

  • DataProviders
  • DataSeries
  • Collectors
  • Analysis

Exemplo de mensagem

\x00\x00\x01\x09\x00\x00\x00\x02{"DataProviders": [{"active": true,"class": "DataProvider","data_provider_type": "FILE","description": "Testing provider","id": 1,"intent": 0,"name": "Provider","project_id": 1,"uri": "file:///home/user/MyDevel/terrama2-build/data/PCD_serrmar_INPE"}]}