| Version 19 (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. |
UPDATE_SERVICE_SIGNAL
A mensagem deve ser um objeto JSon com as tags:
- instance_id : INT
- instance_name : STRING
- listening_port : INT
ADD_DATA_SIGNAL
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"}]}
STATUS_SIGNAL
Quando um serviço receber um STATUS_SIGNAL, ele enviará uma resposta com o mesmo modelo de mensagem com o sinal STATUS_SIGNAL e um json com a mensagem.
As tags da mensagem de resposta são:
- instance_id : INT
- instance_name : STRING
- start_time : STRING
- terrama2_version : STRING
